https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79358
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jakub at gcc dot gnu.org --- Comment #9 from Jakub Jelinek <jakub at gcc dot gnu.org> --- What glibc do you have? E.g. glibc 2.24 has in stdint.h # if __WORDSIZE == 64 # define SIZE_MAX (18446744073709551615UL) # else # ifdef __WORDSIZE32_SIZE_ULONG # define SIZE_MAX (4294967295UL) # else # define SIZE_MAX (4294967295U) # endif # endif and it seems s390 defines the right macros: ./sysdeps/s390/s390-32/bits/wordsize.h:# define __WORDSIZE32_SIZE_ULONG 1 ./sysdeps/s390/s390-64/bits/wordsize.h:# define __WORDSIZE32_SIZE_ULONG 1 so even SIZE_MAX should be unsigned long. While e.g. RHEL7 glibc (2.17) has: # if __WORDSIZE == 64 # define SIZE_MAX (18446744073709551615UL) # else # define SIZE_MAX (4294967295U) # endif so it seems this test actually tests libc rather than gcc if stdint.h is provided by libc and not gcc.