Revision 147342/147343 caused: FAIL: gcc.dg/Wunreachable-2.c (test for excess errors) FAIL: gcc.dg/tree-ssa/flatten-2.c scan-assembler-not indirect[12][: \t\n] on Linux/ia32 and Linux/x86-64.
This is latent problem in -Wunreachable. We now unroll the loop: void bar (void) { int i; for (i = 0; i < 2; i++) if (! foo (a[i])) return; baz (); /* { dg-bogus "will never be executed" } */ baz (); baz (); and last iteration of the loop gets copied including the i<2 test and thus the following code is rendered dead. I guess we can either 1) Fix testcase so it is no longer unrolled again :) (or XFAIL it) 2) Mark duplicated statements in some way and suppress unreachable warning on them 3) Teach unroller to not copy the last iteration including the code after exit condition. Honza
-Wunreachable is completely bogus anyway, I suggest to XFAIL the testcase.
cris-elf too...
flatten-2.c is the more important one. We leave the static function doubleindirect1 in there, which we shouldn't.
Both of these have been fixed for a while now.