re PR middle-end/69542 (-fcompare-debug failure in simplify-rtx.c on i?86 since r232905)
PR middle-end/69542 * lra-remat.c (calculate_local_reg_remat_bb_data): Only consider non-debug insns. * gcc.dg/torture/pr69542.c: New test. From-SVN: r232946
This commit is contained in:
parent
d7e2ecf330
commit
eb1b1f0156
@ -1,3 +1,9 @@
|
||||
2016-01-28 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR middle-end/69542
|
||||
* lra-remat.c (calculate_local_reg_remat_bb_data): Only consider
|
||||
non-debug insns.
|
||||
|
||||
2016-01-28 Pat Haugen <pthaugen@us.ibm.com>
|
||||
|
||||
* config/rs6000/rs6000.c (output_cbranch): Don't statically predict
|
||||
|
@ -694,7 +694,7 @@ calculate_local_reg_remat_bb_data (void)
|
||||
|
||||
FOR_EACH_BB_FN (bb, cfun)
|
||||
FOR_BB_INSNS (bb, insn)
|
||||
if (INSN_P (insn))
|
||||
if (NONDEBUG_INSN_P (insn))
|
||||
set_bb_regs (bb, insn);
|
||||
}
|
||||
|
||||
|
@ -1,3 +1,8 @@
|
||||
2016-01-28 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR middle-end/69542
|
||||
* gcc.dg/torture/pr69542.c: New test.
|
||||
|
||||
2016-01-28 Wilco Dijkstra <wdijkstr@arm.com>
|
||||
|
||||
* gcc.target/aarch64/ccmp_1.c: Fix test issue.
|
||||
|
37
gcc/testsuite/gcc.dg/torture/pr69542.c
Normal file
37
gcc/testsuite/gcc.dg/torture/pr69542.c
Normal file
@ -0,0 +1,37 @@
|
||||
/* PR middle-end/69542 */
|
||||
/* { dg-do compile } */
|
||||
/* { dg-additional-options "-fcompare-debug" } */
|
||||
|
||||
typedef struct A *B;
|
||||
extern int *a[];
|
||||
struct C { B b; struct D *d; };
|
||||
struct A { struct { struct C e[1]; long long f[1]; } u; };
|
||||
struct D { int g; B h[100]; };
|
||||
int b, c, e, g;
|
||||
B d, f;
|
||||
void foo (void) __attribute__ ((__noreturn__));
|
||||
int bar (void)
|
||||
{
|
||||
int i = 0;
|
||||
do
|
||||
{
|
||||
if ('E' && a[e][0] != 'V')
|
||||
foo ();
|
||||
struct D *k = d->u.e[0].d;
|
||||
B x = k->h[i], o = f->u.e[0].b;
|
||||
if (b)
|
||||
return 0;
|
||||
if (a[g][0] != 'E' && a[g][0] != 'V')
|
||||
foo ();
|
||||
struct D *n = o->u.e[0].d;
|
||||
int r = x->u.f[0];
|
||||
(void) r;
|
||||
if (c)
|
||||
foo ();
|
||||
B y = n->h[x->u.f[0]];
|
||||
if (i != y->u.f[0])
|
||||
return 0;
|
||||
i++;
|
||||
}
|
||||
while (1);
|
||||
}
|
Loading…
Reference in New Issue
Block a user