[Bug ipa/103830] [12 Regression] null pointer access optimized away by removing function call at -Og
pinskia at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Sun Dec 26 10:19:51 GMT 2021
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103830
Andrew Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Component|rtl-optimization |ipa
Last reconfirmed| |2021-12-26
Target Milestone|--- |12.0
Summary|volatile optimized away |[12 Regression] null
| |pointer access optimized
| |away by removing function
| |call at -Og
Status|UNCONFIRMED |NEW
CC| |hubicka at gcc dot gnu.org,
| |marxin at gcc dot gnu.org,
| |pinskia at gcc dot gnu.org
Ever confirmed|0 |1
--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
What was removed is not the null pointer itself but rather the function calls
to both MyClass::call and intermediate.
cddce:
Eliminating unnecessary statements:
Deleting : MyClass::call (_4);
Eliminating unnecessary statements:
Deleting : intermediate (D.2427);
>From local-const-pure:
local analysis of void MyClass::call()/1
NULL memory access; terminating BB
checking previously known:
void MyClass::call()/1 is not a malloc candidate, reason: No return value.
Function is locally const.
....
The question is do we want to do const-pure at -Og really.
>it is IMHO invalid to optimize it away (at -Og):
No, it is valid to remove as it is undefined behavior, the question comes do we
want to do the removal at -Og; I suspect no.
More information about the Gcc-bugs
mailing list