Fixed by the PR61757 fix. Richard.
2014-06-14 Richard Biener <rguent...@suse.de> PR tree-optimization/61786 * gcc.dg/torture/pr61786.c: New testcase. * gcc.dg/lto/pr61786_0.c: Likewise. * gcc.dg/lto/pr61786_1.c: Likewise. Index: gcc/testsuite/gcc.dg/torture/pr61786.c =================================================================== --- gcc/testsuite/gcc.dg/torture/pr61786.c (revision 0) +++ gcc/testsuite/gcc.dg/torture/pr61786.c (working copy) @@ -0,0 +1,31 @@ +/* { dg-do run } */ + +int a, *c = &a, d; +char b = 1; + +void +fn1 () +{ + d = 1; +lbl: + if (b == d) + { + d = *c; + if (b) + goto lbl; + } +} + +int +fn2 () +{ + fn1 (); + return 0; +} + +int +main () +{ + fn2 (); + return 0; +} Index: gcc/testsuite/gcc.dg/lto/pr61786_1.c =================================================================== --- gcc/testsuite/gcc.dg/lto/pr61786_1.c (revision 0) +++ gcc/testsuite/gcc.dg/lto/pr61786_1.c (working copy) @@ -0,0 +1,8 @@ +int fn2 (void); + +int +main () +{ + fn2 (); + return 0; +} Index: gcc/testsuite/gcc.dg/lto/pr61786_0.c =================================================================== --- gcc/testsuite/gcc.dg/lto/pr61786_0.c (revision 0) +++ gcc/testsuite/gcc.dg/lto/pr61786_0.c (working copy) @@ -0,0 +1,27 @@ +/* { dg-lto-do run } */ +/* { dg-lto-options { { -flto } } } */ +/* { dg-extra-ld-options "-O" } */ + +int a, *c = &a, d; +char b = 1; + +void +fn1 (void) +{ + d = 1; +lbl: + if (b == d) + { + d = *c; + if (b) + goto lbl; + } +} + +int +fn2 (void) +{ + fn1 (); + return 0; +} +