[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