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

Jim Wilson <wilson at gcc dot gnu.org> changed:

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

--- Comment #8 from Jim Wilson <wilson at gcc dot gnu.org> ---
Looking at the 2011 ISO C standard, section 6.5 Expressions, paragraph 7, says
"An object shall have its stored value accessed only by an lvalue expression
that has one of the following types:".  It then lists compatible types, a
qualified compatible type, a signed/unsigned compatible type, a signed/unsigned
qualified compatible type, an aggregate/union that contains a compatible type,
or a char type.  If your code conforms to this rule, then -fstrict-aliasing
will not break it.

GCC supports type punning via unions.  Or you can use -fno-strict-aliasing if
you want to use pointer casts for type punning.

Reply via email to