[Bug middle-end/89337] Bogus "exceeds maximum object size" on unreachable code
rafael at espindo dot la
gcc-bugzilla@gcc.gnu.org
Thu Feb 14 17:44:00 GMT 2019
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89337
Rafael Avila de Espindola <rafael at espindo dot la> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|RESOLVED |UNCONFIRMED
Resolution|DUPLICATE |---
--- Comment #8 from Rafael Avila de Espindola <rafael at espindo dot la> ---
The previous testcase passes on trunk, but the original doesn't.
The original has a "if (boost::algorithm::ends_with(name, "%2A"))" instead of a
direct "if(name.size() > 3)".
The reduced testcase uses a find to avoid boost::algorithm and keep the
testcase size sane.
In the end it seems that gcc is doing an heroic effort to understand the code
and issue an warning if it can't prove that the bogus memset is not reached. I
don't think that is workable in practice (for sure not in theory): There is
always something that is obvious to the developer but not to gcc.
IMHO gcc should be issuing warnings only when it shows that a statement can be
reached, not when it fails to show the statement cannot be reached.
More information about the Gcc-bugs
mailing list