the following testcase is extracted from WINE. It is to some degree problematic because "BOOL" is a signed int, but we use 1 bit wide bitfields here. Also the ":0" might be a GNU extension. The problem is that with gcc 3.3.5: gcc -O2 -o xx xx.c ; ./xx <no output> but with gcc 4.1 branch: /home/marcus/projects/gcc/BIN/bin/gcc -O2 -march=i586 -mtune=i586 xx.c -o xx; ./xx xx: xx.c:24: main: Assertion `sizeof(CABINETSTATE) == 8' failed. so the layout and final size of this struct changed.
-- Summary: bitfield layout change (regression?) Product: gcc Version: 4.1.0 Status: UNCONFIRMED Severity: normal Priority: P2 Component: c AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: marcus at jet dot franken dot de CC: gcc-bugs at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22275