GCC prints the following warning when compiling the new code:
lib/xmalloc.c: In function 'xpalloc':
lib/xmalloc.c:132:64: warning: comparison of integer expressions of different signedness: 'long unsigned int' and 'idx_t' {aka 'long int'} [-Wsign-compare]
132 | = ((INT_MULTIPLY_WRAPV (n, item_size, &nbytes) || SIZE_MAX < nbytes)
If I understand the error message correctly, it is because 'nbytes' is a signed type while SIZE_MAX is unsigned.
Does the comparison make any sense, by the way?
Thanks for investigating,
Marc