https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108565
--- Comment #5 from Jan Hubicka ---
Teaching modref that THIS parameter of all destructors is nonescape looks like
interesting idea (and easy to implement).
Memory stores are currently indeed handled as "anyting may happen". modref does
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108565
--- Comment #4 from Jonathan Wakely ---
(In reply to Richard Biener from comment #3)
> I suspect 'operator new' is not returns_nonnull for the variant that isn't
> noexcept. That would be my first stab at improving things. Not sure
> what the
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108565
Richard Biener changed:
What|Removed |Added
Ever confirmed|0 |1
Status|UNCONFIRMED
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108565
Andrew Pinski changed:
What|Removed |Added
Keywords||EH
--- Comment #2 from Andrew Pinski
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108565
--- Comment #1 from Andrew Pinski ---
The missed optimization is because we don't optimize:
MEM[(int *)_28] = 2;
_8 = operator new (4);
[local count: 1073741825]:
MEM[(int *)_8] = 20;
MEM[(int *)_8] ={v} {CLOBBER};
operator