------- Comment #4 from vsoni at tilera dot com 2010-03-25 00:21 ------- (In reply to comment #2)
> I read that t.f promotes to int. I concede to this interpretation for C++. Note that the behavior for C/C99 also changed: $ gcc-4.1.2 -std=c99 -Wall -pedantic x.c; ./a.out x.c: In function main: x.c:5: warning: type of bit-field f is a GCC extension x.c:8: warning: type of bit-field f is a GCC extension 100000000 200000000 0 8000 0 0 $ gcc-4.4.0 -std=c99 -Wall -pedantic x.c; ./a.out x.c: In function main: x.c:5: warning: type of bit-field f is a GCC extension x.c:8: warning: type of bit-field f is a GCC extension 100000000 0 0 8000 0 0 So apparently s.f doesn't promote to long anymore in C99. Is this change in behavior also intentional and correct? -- vsoni at tilera dot com changed: What |Removed |Added ---------------------------------------------------------------------------- Summary|integral promotion of long |integral promotion of long |bit-fields broken in g++ |bit-fields broken in gcc |4.4.0 |4.4.0? http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43393