https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115236
Sam James <sjames at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Summary|wrong code at -O1 and above |[15 regression] Wrong code |with -fno-tree-fre on |at -O1 and above with |x86_64-linux-gnu |-fno-tree-fre on | |x86_64-linux-gnu CC| |sjames at gcc dot gnu.org Keywords| |wrong-code --- Comment #1 from Sam James <sjames at gcc dot gnu.org> --- --- a/foo.c.051t.sccopy1 +++ b/foo.c.051t.sccopy1 @@ -1,6 +1,8 @@ ;; Function main (main, funcdef_no=0, decl_uid=2770, cgraph_uid=1, symbol_order=2) {+Removing basic block 4+} {+Merging blocks 2 and 3+} int main () { int * volatile * d; @@ -16,20 +18,9 @@ int main () MEM[(int * volatile *)&c] ={v} b.0_1; # DEBUG BEGIN_STMT c.1_2 = c; [- if (c.1_2 != &a)-] [- goto <bb 3>; [INV]-] [- else-] [- goto <bb 4>; [INV]-] [- <bb 3> :-] # DEBUG BEGIN_STMT __builtin_abort (); [- <bb 4> :-] [- # DEBUG BEGIN_STMT-] [- c ={v} {CLOBBER(eos)};-] [- return 0;-] }