[Bug tree-optimization/101042] Bogus -Wstringop-overread with 11.1.0 and -O1 because of a call to printf _after_ assertions
msebor at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Tue Jun 15 00:46:12 GMT 2021
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101042
Martin Sebor <msebor at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Last reconfirmed| |2021-06-15
Keywords| |missed-optimization
CC| |msebor at gcc dot gnu.org
Ever confirmed|0 |1
Status|UNCONFIRMED |NEW
--- Comment #2 from Martin Sebor <msebor at gcc dot gnu.org> ---
printf being treated as a possible clobber is one problem. Another is GCC not
implementing the same optimization for calloc as for malloc/bzero (I opened PR
101074 to track that separately). The warning disappears when the printf call
is removed and then reappears when the second assert (assert(field->type ==
FIELD.type);) is removed.
Other than that, the warning is based on the IL below:
<bb 7> [local count: 548457796]:
<L6>:
_3 = field_7->D.3115.string;
_4 = strcmp (_3, 1B);
if (_4 == 0)
goto <bb 9>; [99.96%]
else
goto <bb 8>; [0.04%]
The integer constant in the call to strcmp() is not a valid pointer (PR 99578
comment 1 explains the rationale).
More information about the Gcc-bugs
mailing list