https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63284
Bug ID: 63284 Summary: [4.9/5 Regression] -fcompare-debug issue due to redirection to __builtin_unreachable () Product: gcc Version: 4.9.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: debug Assignee: jakub at gcc dot gnu.org Reporter: jakub at gcc dot gnu.org /* { dg-do compile } */ /* { dg-options "-O2 -fcompare-debug" } */ int a[10], *b, *d, c, f; int fn2 (void); void fn3 (void); void fn4 (int); static int fn1 (int x) { int e = a[0]; if (e) return 1; if (b) switch (x) { case 1: if (d) e = fn2 (); else fn3 (); break; case 0: if (d) { fn3 (); if (c) fn4 (1); } else fn4 (0); } return e; } void fn6 (void) { f = fn1 (0); } fails on the 4.9 branch, it happens to succeed on the trunk, but when one looks at *.optimized dumps differences, there are still undesirable differences in the order of predecessors of one bb (and thus also PHI argument order).