https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107405
--- Comment #1 from Jiri Slaby <jirislaby at gmail dot com> --- (In reply to Jiri Slaby from comment #0) > Reduced testcase: > #include <stdio.h> > enum { A = 0xffffffff, B = 1 << 31, }; > int main() { printf("%lx %x %zu\n", A, B, sizeof(B)); } It's also interesting to me, that A is long even with gcc-12...