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;-]
}