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

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |RESOLVED
                 CC|                            |jakub at gcc dot gnu.org
         Resolution|---                         |INVALID

--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
There is UB in that code, but the bug isn't about alignment, but about
aliasing; the standard says that writing to a union member invalidates all
other union members, and while GCC and other compilers as an extension allow
that, the requirement is that the union is visible in the access path, which is
not the case here.  Testcases like this would almost always kill all the type
based alias analysis optimizations.  The fact that neither GCC nor clang
-fsanitize=undefined catches this is just because there is no alias analysis
sanitizer yet.

Reply via email to