Test case: #include <stdio.h> #define INT_INVALID -1
class Test { int b : 16; int a; int c : 16; public: Test() { b = a = c = INT_INVALID; //a = b = c = INT_INVALID; } void dump()const { printf("a: %d\tb: %d\tc: %d\n",a,b,c); } }; int main() { Test a; a.dump(); return 0; } ---------------------------- g++-4.1 main.cpp ./a.out a: 65535 b: -1 c: -1 g++-4.0 main.cpp a: -1 b: -1 c: -1 It seems like regression in GCC-4.1.1 and 4.1.2(on GCC-4.1.0 and earlier I've got correct results) -- Summary: problem with bit-fields assignment Product: gcc Version: 4.1.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: vovanec at gmail dot com http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30763