https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91893
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution|--- |DUPLICATE --- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Actually this is a dup of PR 88731. Comment #2 of that PR explains it nicely: GCC makes the integer type of the bit-field in question "unsigned:4". See DR#315 (also, see the line of C90 DRs that led to the wording changes in C99 relating to types of bit-fields, references in <https://gcc.gnu.org/ml/gcc/2017-10/msg00192.html>). ---- CUT ---- So it is a bit more complex than just integer promotions going on here and it is implementation defined behavior due to the types. *** This bug has been marked as a duplicate of bug 88731 ***