gcc-patches@gcc.gnu.org
[Top] [All Lists]

Re: [PATCH][RFC] Gimplify unit-at-a-time (again)

Subject: Re: [PATCH][RFC] Gimplify unit-at-a-time again
From: Richard Guenther
Date: Tue, 7 Jul 2009 12:50:02 +0200 CEST
On Mon, 6 Jul 2009, Richard Guenther wrote:

> 
> This is the gimplify-unit-at-a-time patch brought up-to-date with
> the current trunk and cleaned up somewhat.  The remaining
> diagnostic regressions are progressions IMHO, fixing them would
> require a errrorcount/sorrycount per function.
> 
> Comments welcome.  Reviews and approvals for the frontend specific
> parts as well.

The following adjusts the C and Fortran testcases that are spuriously
failing after the patch.  Most of the extra errors/warnings happen
with trunk as well if you shorten the testcases appropriately.

Richard.


        * gfortran.dg/missing_optional_dummy_5.f90: Adjust pattern.
        * gcc.dg/declspec-9.c: Expect extra error.
        * gcc.dg/declspec-10.c: Likewise.
        * gcc.dg/declspec-11.c: Likewise.
        * gcc.dg/redecl-10.c: Expect extra warnings.
        * gcc.target/i386/pr39082-1.c: Adjust diagnostic location.
        * gcc.target/i386/pr39545-1.c: Likewise.

Index: gcc/testsuite/gcc.dg/declspec-10.c
===================================================================
--- gcc/testsuite/gcc.dg/declspec-10.c.orig     2009-05-05 18:07:06.000000000 
+0200
+++ gcc/testsuite/gcc.dg/declspec-10.c  2009-07-07 12:35:53.000000000 +0200
@@ -43,3 +43,5 @@ void i (void) { auto void y (void) {} }
 /* { dg-warning "function definition declared 'auto'" "nested" { target *-*-* 
} 42 } */
 
 inline int main (void) { return 0; } /* { dg-warning "cannot inline function 
'main'" } */
+
+/* { dg-message "error: register name not specified for 'y'" "" { target *-*-* 
} 19 } */
Index: gcc/testsuite/gcc.dg/declspec-11.c
===================================================================
--- gcc/testsuite/gcc.dg/declspec-11.c.orig     2009-05-05 18:07:06.000000000 
+0200
+++ gcc/testsuite/gcc.dg/declspec-11.c  2009-07-07 12:36:02.000000000 +0200
@@ -43,3 +43,5 @@ void i (void) { auto void y (void) {} }
 /* { dg-error "function definition declared 'auto'" "nested" { target *-*-* } 
42 } */
 
 inline int main (void) { return 0; } /* { dg-error "cannot inline function 
'main'" } */
+
+/* { dg-message "error: register name not specified for 'y'" "" { target *-*-* 
} 19 } */
Index: gcc/testsuite/gcc.dg/declspec-9.c
===================================================================
--- gcc/testsuite/gcc.dg/declspec-9.c.orig      2009-05-05 18:07:06.000000000 
+0200
+++ gcc/testsuite/gcc.dg/declspec-9.c   2009-07-07 12:32:08.000000000 +0200
@@ -17,7 +17,7 @@ void f6 (static int); /* { dg-error "sto
 void f7 (typedef int); /* { dg-error "storage class specified for unnamed 
parameter" } */
 
 auto int x; /* { dg-error "file-scope declaration of 'x' specifies 'auto'" } */
-register int y;
+register int y; /* { dg-error "register name not specified for 'y'" } */
 
 void h (void) { extern void x (void) {} } /* { dg-error "nested function 'x' 
declared 'extern'" } */
 
Index: gcc/testsuite/gcc.dg/redecl-10.c
===================================================================
--- gcc/testsuite/gcc.dg/redecl-10.c.orig       2006-02-07 11:14:14.000000000 
+0100
+++ gcc/testsuite/gcc.dg/redecl-10.c    2009-07-07 12:37:18.000000000 +0200
@@ -12,7 +12,7 @@ f (void)
   extern int w[] = { 1, 2 }; /* { dg-error "has both" } */
 }
 
-int x[];
+int x[]; /* { dg-warning "array 'x' assumed to have one element" } */
 void
 g (void)
 {
@@ -26,7 +26,7 @@ h (void)
   extern int y[] = { 6 }; /* { dg-error "has both" } */
 }
 
-int z[];
+int z[]; /* { dg-warning "array 'z' assumed to have one element" } */
 void
 i (void)
 {
Index: gcc/testsuite/gcc.target/i386/pr39082-1.c
===================================================================
--- gcc/testsuite/gcc.target/i386/pr39082-1.c.orig      2009-02-18 
10:37:09.000000000 +0100
+++ gcc/testsuite/gcc.target/i386/pr39082-1.c   2009-07-07 12:38:21.000000000 
+0200
@@ -13,7 +13,7 @@ extern int bar1 (union un);
 extern union un bar2 (int);
 
 int
-foo1 (union un u) /* { dg-message "note: The ABI of passing union with long 
double has changed in GCC 4.4" } */
+foo1 (union un u)
 {
   bar1 (u);
   return u.i;
@@ -30,6 +30,6 @@ foo2 (void)
 int
 foo3 (int x)
 {
-  union un u = bar2 (x);
+  union un u = bar2 (x); /* { dg-message "note: The ABI of passing union with 
long double has changed in GCC 4.4" } */
   return u.i;
 }
Index: gcc/testsuite/gcc.target/i386/pr39545-1.c
===================================================================
--- gcc/testsuite/gcc.target/i386/pr39545-1.c.orig      2009-03-30 
10:32:05.000000000 +0200
+++ gcc/testsuite/gcc.target/i386/pr39545-1.c   2009-07-07 12:38:42.000000000 
+0200
@@ -10,14 +10,14 @@ struct flex
 };
 
 int
-foo (struct flex s) /* { dg-message "note: The ABI of passing struct with a 
flexible array member has changed in GCC 4.4" } */
+foo (struct flex s)
 {
   return s.i;
 }
 
 struct flex
 bar (int x)
-{
+{ /* { dg-message "note: The ABI of passing struct with a flexible array 
member has changed in GCC 4.4" } */
   struct flex s;
   s.i = x;
   return s;
Index: gcc/testsuite/gfortran.dg/missing_optional_dummy_5.f90
===================================================================
--- gcc/testsuite/gfortran.dg/missing_optional_dummy_5.f90.orig 2008-01-28 
11:49:19.000000000 +0100
+++ gcc/testsuite/gfortran.dg/missing_optional_dummy_5.f90      2009-07-07 
12:43:21.000000000 +0200
@@ -23,7 +23,7 @@ contains
  end function tm_doit
 end module krmod
 
-! { dg-final { scan-tree-dump " tm_doit \\(&parm.\(6|7\), 0B, 0\\);" 
"original" } }
+! { dg-final { scan-tree-dump " tm_doit \\(&parm\.., 0B, 0\\);" "original" } }
 ! { dg-final { cleanup-tree-dump "original" } }
 ! { dg-final { cleanup-modules "pr22146" } }
 

<Prev in Thread] Current Thread [Next in Thread>