https://gcc.gnu.org/bugzilla/show_bug.cgi?id=12395
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Target| |x86_64-*-* i?86-*-* --- Comment #21 from Richard Biener <rguenth at gcc dot gnu.org> --- Btw, the code for the global variable case is now exactly the same as for int foo(int a) { if(++a) ++a; return a; } besides the load/store instead of the argument/return, so the bug isn't about global variables anymore but about optimization obfuscating the if (++a) ++a; sequence in a way that results in worse code than when literally translating stmt-at-a-time.