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).