Commit 90588a10 by Jakub Jelinek Committed by Jakub Jelinek

re PR bootstrap/41241 (bootstrap comparison failure)

	PR bootstrap/41241
	* combine-stack-adj.c (struct csa_memlist): Rename to...
	(struct csa_reflist): ... this.  Rename mem field to ref.
	(free_csa_memlist): Rename to...
	(free_csa_reflist): ... this.
	(record_one_stack_memref): Rename to...
	(record_one_stack_ref): ... this.  Handle also REG_P.
	(try_apply_stack_adjustment): Handle also REG_P.
	(struct record_stack_memrefs_data): Rename to...
	(struct record_stack_refs_data): ... this.  Rename memlist field to
	reflist.
	(record_stack_memrefs): Rename to...
	(record_stack_refs): ... this.  For DEBUG_INSNs keep traversing
	subexpressions instead of failing when a MEM contains SP references.
	For SP itself in DEBUG_INSNs queue it also onto reflist chain.
	(combine_stack_adjustments_for_block): Adjust for mem to ref renaming.

	* gcc.dg/pr41241.c: New test.

From-SVN: r151462
parent 3797a0ff
2009-09-06 Jakub Jelinek <jakub@redhat.com>
PR bootstrap/41241
* combine-stack-adj.c (struct csa_memlist): Rename to...
(struct csa_reflist): ... this. Rename mem field to ref.
(free_csa_memlist): Rename to...
(free_csa_reflist): ... this.
(record_one_stack_memref): Rename to...
(record_one_stack_ref): ... this. Handle also REG_P.
(try_apply_stack_adjustment): Handle also REG_P.
(struct record_stack_memrefs_data): Rename to...
(struct record_stack_refs_data): ... this. Rename memlist field to
reflist.
(record_stack_memrefs): Rename to...
(record_stack_refs): ... this. For DEBUG_INSNs keep traversing
subexpressions instead of failing when a MEM contains SP references.
For SP itself in DEBUG_INSNs queue it also onto reflist chain.
(combine_stack_adjustments_for_block): Adjust for mem to ref renaming.
2009-09-06 Richard Guenther <rguenther@suse.de> 2009-09-06 Richard Guenther <rguenther@suse.de>
PR middle-end/41144 PR middle-end/41144
......
2009-09-06 Jakub Jelinek <jakub@redhat.com>
PR bootstrap/41241
* gcc.dg/pr41241.c: New test.
2009-09-06 Richard Guenther <rguenther@suse.de> 2009-09-06 Richard Guenther <rguenther@suse.de>
PR middle-end/41144 PR middle-end/41144
......
/* PR bootstrap/41241 */
/* { dg-do compile } */
/* { dg-options "-O2 -fcompare-debug -g" } */
/* { dg-options "-O2 -fcompare-debug -g -march=i586 -mtune=i586 -fomit-frame-pointer" { target { { i?86-*-* x86_64-*-* } && ilp32 } } } */
typedef struct { int t1; int t2; int t3; } *T;
typedef struct { int s; } S;
int fn1 (int);
int fn2 (int, int, int);
int fn3 (void);
static S
bar ()
{
S s = { 0 };
return s;
}
void
foo (T x)
{
int a, b, c, d, e;
T f, g;
S h;
a = x->t2;
fn1 (x->t1);
h = bar (b);
c = fn1 (e);
d = fn3 ();
f->t3 &= g->t3 |= fn2 (0, b, x->t1);
fn2 (0, c, d);
fn2 (0, e, 0);
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment