https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82051

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |rguenth at gcc dot gnu.org

--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> ---
(In reply to Andrew Pinski from comment #1)
> I don't know if this is defined or not.  Basically 0x549E5CE9L is really
> 0xCE9 which is stored in the bit-field.  The rest of the bits might be still
> undefined or zero.  I don't remember what the C standard says here.

They are undefined.  The question is what the standard says about the
initializer, what union member gets initialized / activated.  One may read
6.7.9/20 as to
always the first member being initialized / activated.

In this case this PR is INVALID.

I suppose you want = { .f1 = 0x549E5CE9L };

Reply via email to