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

Martin Sebor <msebor at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
      Known to fail|                            |10.2.0, 11.1.0
            Summary|Bogus -Wformat-overflow     |Bogus -Wformat-overflow for
                   |warning                     |a trailing zero-length
                   |                            |array of a union
                 CC|                            |msebor at gcc dot gnu.org
             Status|UNCONFIRMED                 |NEW
          Component|c                           |middle-end
   Last reconfirmed|                            |2021-05-03
     Ever confirmed|0                           |1

--- Comment #1 from Martin Sebor <msebor at gcc dot gnu.org> ---
Confirmed with GCC 10.  The warning is avoided in GCC 11 (since r11-5622).  The
change is too intrusive to backport and it's seems that the warning doesn't
trigger anymore might be incidental to it.  It can still be reproduced on trunk
but only in C++.

I would suggest to expect warnings for tricks like in the test case (writing
past subobject boundaries).  GCC warnings are designed to "report constructions
that are not inherently erroneous but that are risky or suggest there may have
been an error."  Access warnings like -Warray-bounds, -Wformat-overflow, and
-Wstringop-overflow try to accommodate code they have been taught is likely
safe but the logic is secondary to helping find bugs, and not foolproof.

Reply via email to