https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98418
pskocik at gmail dot com changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution|--- |INVALID --- Comment #3 from pskocik at gmail dot com --- You're right. The bug was in my code. struct foo { unsigned bit: (0xffffffffll<<40)!=0; }; is indeed UB due to http://port70.net/~nsz/c/c11/n1570.html#6.5.7p4, but struct foo { unsigned bit: (0xffffffffull<<40)!=0; }; isn't and GCC accepts it without complaint. Apologies for the false alarm.