[PATCH][alias-improvements] XFAIL broken testcases
Richard Guenther
rguenther@suse.de
Sat Mar 28 14:07:00 GMT 2009
This XFAILs the testcases that are broken on the branch.
gcc.dg/tree-ssa/ssa-fre-10.c: this one is weird - I believe I added it
because it ICEd during the development of the SCCVN insertion stuff. Thus
I added a duplicate in the torture.
gcc.dg/tree-ssa/ssa-pre-24.c: New testcase on the branch.
gcc.dg/uninit-pr19430.c,
gcc.dg/uninit-B.c: The way uninitialized memory is warned about was
fragile from the start, now it's even more so.
Committed to the branch.
Richard.
2009-03-28 Richard Guenther <rguenther@suse.de>
testsuite/
* gcc.c-torture/compile/20090328-1.c: New testcase.
* gcc.dg/tree-ssa/ssa-fre-10.c: XFAIL.
* gcc.dg/tree-ssa/ssa-pre-24.c: Likewise.
* gcc.dg/uninit-B.c: Likewise.
* gcc.dg/uninit-pr19430.c: Likewise.
Index: gcc/testsuite/gcc.c-torture/compile/20090328-1.c
===================================================================
*** gcc/testsuite/gcc.c-torture/compile/20090328-1.c (revision 0)
--- gcc/testsuite/gcc.c-torture/compile/20090328-1.c (revision 0)
***************
*** 0 ****
--- 1,17 ----
+ union loc { unsigned reg; signed offset; };
+ void __frame_state_for (volatile char *state_in, int x)
+ {
+ /* We should move all the loads out of this loop. Right now, we only
+ move one. It takes two insertions because we insert a cast. */
+ union loc fs;
+ int reg;
+ for (;;) {
+ switch (x) {
+ case 0:
+ *state_in = fs.reg;
+ case 1:
+ *state_in = fs.offset;
+ }
+ }
+ }
+
Index: gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-10.c
===================================================================
*** gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-10.c (revision 145186)
--- gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-10.c (working copy)
*************** void __frame_state_for (volatile char *s
*** 18,22 ****
}
}
! /* { dg-final { scan-tree-dump "Insertions: 2" "pre" } } */
/* { dg-final { cleanup-tree-dump "pre" } } */
--- 18,26 ----
}
}
! /* This is a weird testcase. It should need PPRE to hoist the loop
! invariants and the volatileness of state_in prevents DSE of the
! first store. Thus, this is XFAILed. */
!
! /* { dg-final { scan-tree-dump "Insertions: 2" "pre" { xfail *-*-* } } } */
/* { dg-final { cleanup-tree-dump "pre" } } */
Index: gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-24.c
===================================================================
*** gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-24.c (revision 145186)
--- gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-24.c (working copy)
*************** void foo(int *p, double *x, int n)
*** 9,15 ****
}
/* We should remove the unnecessary insertion of a phi-node and
! _not_ end up using the phi result for replacement *p. */
! /* { dg-final { scan-tree-dump-not "= prephitmp" "pre" } } */
/* { dg-final { cleanup-tree-dump "pre" } } */
--- 9,20 ----
}
/* We should remove the unnecessary insertion of a phi-node and
! _not_ end up using the phi result for replacement *p.
! The issue here is that when PHI-translating the virtual operands
! we assign different value-numbers to the load. Re-running VN
! after insertion or trying to be clever and doing this on the
! fly during PHI translation would solve this. The next copyprop
! fixes this anyway. */
! /* { dg-final { scan-tree-dump-not "= prephitmp" "pre" { xfail *-*-* } } } */
/* { dg-final { cleanup-tree-dump "pre" } } */
Index: gcc/testsuite/gcc.dg/uninit-B.c
===================================================================
*** gcc/testsuite/gcc.dg/uninit-B.c (revision 145186)
--- gcc/testsuite/gcc.dg/uninit-B.c (working copy)
*************** void
*** 9,15 ****
baz (void)
{
int i;
! if (i) /* { dg-warning "is used uninitialized" "uninit i warning" } */
bar (i);
foo (&i);
}
--- 9,15 ----
baz (void)
{
int i;
! if (i) /* { dg-warning "is used uninitialized" "uninit i warning" { xfail *-*-* } } */
bar (i);
foo (&i);
}
Index: gcc/testsuite/gcc.dg/uninit-pr19430.c
===================================================================
*** gcc/testsuite/gcc.dg/uninit-pr19430.c (revision 145186)
--- gcc/testsuite/gcc.dg/uninit-pr19430.c (working copy)
*************** void frob(int *pi);
*** 29,35 ****
int main(void)
{
int i;
! printf("i = %d\n", i); /* { dg-warning "'i' is used uninitialized in this function" } */
frob(&i);
return 0;
--- 29,35 ----
int main(void)
{
int i;
! printf("i = %d\n", i); /* { dg-warning "'i' is used uninitialized in this function" "" { xfail *-*-* } } */
frob(&i);
return 0;
*************** int main(void)
*** 38,43 ****
void foo3(int*);
void bar3(void) {
int x;
! if(x) /* { dg-warning "'x' is used uninitialized in this function" "uninitialized" } */
foo3(&x);
}
--- 38,43 ----
void foo3(int*);
void bar3(void) {
int x;
! if(x) /* { dg-warning "'x' is used uninitialized in this function" "uninitialized" { xfail *-*-* } } */
foo3(&x);
}
More information about the Gcc-patches
mailing list