------- Comment #3 from s__nakayama at infoseek dot jp 2006-12-22 08:39 ------- (In reply to comment #2) > When is the justification that we expect a value of 2? Bool in C++ is > a one-bit type and when you do x.x++ I would imagine that you overflow > the range of that type. The fact that you declare it as a bit-field of > length 4 is immaterial, in my opinion: you also don't get a 128-bit integer > simply by declaring a variable as > struct X { > int x : 128; > };
It is a result of g++4.2 not a expectation that a value becomes 2. Bit-size is immaterial. The problem is that std 5.3.2 isn't applied for bit-field. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30274