https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100221
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Summary|missed optimization for |Takes two passes at DSE to |dead code elimination at |remove some dead stores |-O3 (vs. -O1, -Os, -O2) | --- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Reduced testcase even further to show the problem (note -O2 and -O3 both now don't optimize): extern void foo(void); int a, b; static int c; int main() { if (c) foo (); int *g = &c; int **h = &g; int ***h1 = &h; if (a) while (b) b = 0; }