[Bug c++/43393] integral promotion of long bit-fields broken in gcc 4.4.0?

vsoni at tilera dot com gcc-bugzilla@gcc.gnu.org
Thu Mar 25 00:21:00 GMT 2010



------- 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



More information about the Gcc-bugs mailing list