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.