This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Uniqueness of test names


Every test assertion (everything which gets a PASS or FAIL line in a .sum 
file and is counted in the numbers of testcases given at the end) should 
have a unique name (the test that appears after the PASS: or FAIL:), so 
that regression testers can reliably compare test results between runs.

One way in which test assertions fail to have unique names is the use of 
multiple dg-error or dg-warning directives for the same line.  The second 
argument of dg-error is a name which is inserted in the full test name on 
the PASS or FAIL line, and in the case of multiple directives for one line 
of code all but at most one need to have a nonempty name given there.

This patch adds such names to improve uniqueness.  Tested on 
x86_64-unknown-linux-gnu.  I've applied the C parts to mainline and 4.0 
branch.  OK to commit the C++ parts?

The other failures of uniqueness are in the PCH tests, for both C and C++.  
For example, you have

PASS: ./common-1.h -O0 -g (test for excess errors)
PASS: gcc.dg/pch/common-1.c -O0 -g (test for excess errors)
PASS: gcc.dg/pch/common-1.c -O0 -g (test for excess errors)
PASS: gcc.dg/pch/common-1.c -O0 -g assembly comparison

where the middle two tests have the same name.  This would seem to be a 
bug in the test harness: when compiling a file twice, with and without 
PCH, the compilations need different test names.

-- 
Joseph S. Myers               http://www.srcf.ucam.org/~jsm28/gcc/
    jsm@polyomino.org.uk (personal mail)
    joseph@codesourcery.com (CodeSourcery mail)
    jsm28@gcc.gnu.org (Bugzilla assignments and CCs)

2005-03-13  Joseph S. Myers  <joseph@codesourcery.com>

	* gcc.dg/anon-struct-6.c, gcc.dg/array-8.c,
	gcc.dg/cpp/19940712-1.c, gcc.dg/cpp/19951025-1.c,
	gcc.dg/cpp/tr-warn6.c, gcc.dg/deprecated.c, gcc.dg/init-bad-1.c,
	gcc.dg/init-bad-2.c, gcc.dg/init-bad-3.c, gcc.dg/m-un-2.c,
	gcc.dg/parm-mismatch-1.c, gcc.dg/redecl-1.c: Ensure uniqueness of
	test assertion names.

2005-03-13  Joseph S. Myers  <joseph@codesourcery.com>

	* g++.dg/other/cv_func.C, g++.dg/other/offsetof3.C,
	g++.dg/parse/error11.C, g++.dg/tc1/dr108.C,
	g++.dg/template/local4.C, g++.dg/template/nontype6.C,
	g++.dg/warn/deprecated.C: Ensure uniqueness of test assertion
	names.

diff -rupN GCC.orig/gcc/testsuite/gcc.dg/anon-struct-6.c GCC/gcc/testsuite/gcc.dg/anon-struct-6.c
--- GCC.orig/gcc/testsuite/gcc.dg/anon-struct-6.c	2004-11-06 16:21:45.000000000 +0000
+++ GCC/gcc/testsuite/gcc.dg/anon-struct-6.c	2005-03-13 18:04:24.000000000 +0000
@@ -9,4 +9,4 @@ struct s {
   const;
 };
 /* { dg-warning "warning: useless type qualifier in empty declaration" "empty" { target *-*-* } 9 } */
-/* { dg-warning "warning: empty declaration" "empty" { target *-*-* } 9 } */
+/* { dg-warning "warning: empty declaration" "empty 2" { target *-*-* } 9 } */
diff -rupN GCC.orig/gcc/testsuite/gcc.dg/array-8.c GCC/gcc/testsuite/gcc.dg/array-8.c
--- GCC.orig/gcc/testsuite/gcc.dg/array-8.c	2004-11-20 20:29:08.000000000 +0000
+++ GCC/gcc/testsuite/gcc.dg/array-8.c	2005-03-13 18:09:34.000000000 +0000
@@ -43,7 +43,7 @@ g (void)
   pv[0]; /* { dg-warning "warning: dereferencing 'void \\*' pointer" } */
   0[pv]; /* { dg-warning "warning: dereferencing 'void \\*' pointer" } */
   sip[0]; /* { dg-error "error: invalid use of undefined type 'struct si'" } */
-  /* { dg-error "error: dereferencing pointer to incomplete type" "" { target *-*-* } 45 } */
+  /* { dg-error "error: dereferencing pointer to incomplete type" "incomplete" { target *-*-* } 45 } */
   0[sip]; /* { dg-error "error: invalid use of undefined type 'struct si'" } */
-  /* { dg-error "error: dereferencing pointer to incomplete type" "" { target *-*-* } 47 } */
+  /* { dg-error "error: dereferencing pointer to incomplete type" "incomplete" { target *-*-* } 47 } */
 }
diff -rupN GCC.orig/gcc/testsuite/gcc.dg/cpp/19940712-1.c GCC/gcc/testsuite/gcc.dg/cpp/19940712-1.c
--- GCC.orig/gcc/testsuite/gcc.dg/cpp/19940712-1.c	2000-06-29 19:55:26.000000000 +0000
+++ GCC/gcc/testsuite/gcc.dg/cpp/19940712-1.c	2005-03-13 18:03:29.000000000 +0000
@@ -3,7 +3,7 @@
 
 /* dg.exp doesn't read the header files for magic comments. */
 /* { dg-error "unterminated comment" "" { target *-*-* } 4 } */
-/* { dg-error "unterminated comment" "" { target *-*-* } 8 } */
+/* { dg-error "unterminated comment" "header error" { target *-*-* } 8 } */
 
 #include "19940712-1.h"	  /* { dg-error "" }  // In file included from: */
 #include "19940712-1a.h"  /* { dg-error "" }  // In file included from: */
diff -rupN GCC.orig/gcc/testsuite/gcc.dg/cpp/19951025-1.c GCC/gcc/testsuite/gcc.dg/cpp/19951025-1.c
--- GCC.orig/gcc/testsuite/gcc.dg/cpp/19951025-1.c	2001-08-07 00:15:20.000000000 +0000
+++ GCC/gcc/testsuite/gcc.dg/cpp/19951025-1.c	2005-03-13 18:03:46.000000000 +0000
@@ -1,4 +1,4 @@
 /* { dg-do preprocess } */
-/* { dg-error "include expects" "" { target *-*-* } 4 } */
-/* { dg-error "newline at end" "" { target *-*-* } 4 } */
+/* { dg-error "include expects" "include" { target *-*-* } 4 } */
+/* { dg-error "newline at end" "newline" { target *-*-* } 4 } */
 #include /\
diff -rupN GCC.orig/gcc/testsuite/gcc.dg/cpp/tr-warn6.c GCC/gcc/testsuite/gcc.dg/cpp/tr-warn6.c
--- GCC.orig/gcc/testsuite/gcc.dg/cpp/tr-warn6.c	2000-12-08 02:21:06.000000000 +0000
+++ GCC/gcc/testsuite/gcc.dg/cpp/tr-warn6.c	2005-03-13 18:04:08.000000000 +0000
@@ -13,7 +13,7 @@
 #define foo7(AA, hello, world, EEE) sdf "A B hello C,world,DhelloE F" fds EEE /* { dg-warning "macro argument \"hello\" would be stringified" "traditional stringification" } */
 
 /* Catch the second warning from the above line.  */
-/* { dg-warning "macro argument \"world\" would be stringified" "traditional stringification" { target *-*-* } 13 } */
+/* { dg-warning "macro argument \"world\" would be stringified" "traditional stringification second warning" { target *-*-* } 13 } */
 
 # 19 "sys-header.h" 3
 /* We are in system headers now, no -Wtraditional warnings should issue.  */
diff -rupN GCC.orig/gcc/testsuite/gcc.dg/deprecated.c GCC/gcc/testsuite/gcc.dg/deprecated.c
--- GCC.orig/gcc/testsuite/gcc.dg/deprecated.c	2004-09-15 20:39:49.000000000 +0000
+++ GCC/gcc/testsuite/gcc.dg/deprecated.c	2005-03-13 18:05:21.000000000 +0000
@@ -53,10 +53,10 @@ int func1()
    int (*pf)() = f1;			/* { dg-warning "'f1' is deprecated" "" } */
 
    z = w + x + y + g1 + g2 + g3;	/* { dg-warning "'x' is deprecated" "" } */
-   					/* { dg-warning "'y' is deprecated" "" { target *-*-* } 55 } */
-   					/* { dg-warning "'g2' is deprecated" "" { target *-*-* } 55 } */
-   					/* { dg-warning "'g3' is deprecated" "" { target *-*-* } 55 } */
-   return f1(); 			/* { dg-warning "'f1' is deprecated" "" } */
+   					/* { dg-warning "'y' is deprecated" "y" { target *-*-* } 55 } */
+   					/* { dg-warning "'g2' is deprecated" "g2" { target *-*-* } 55 } */
+   					/* { dg-warning "'g3' is deprecated" "g3" { target *-*-* } 55 } */
+   return f1(); 			/* { dg-warning "'f1' is deprecated" "f1" } */
 }
 
 int func2(S1 *p)
@@ -71,7 +71,7 @@ int func2(S1 *p)
   p->u1.field5 = g1 + p->field7;
   p->u2.field9;				/* { dg-warning "'u2' is deprecated" "" } */
   return p->u1.field6 + p->field8;	/* { dg-warning "'field6' is deprecated" "" } */
-  					/* { dg-warning "'field8' is deprecated" "" { target *-*-* } 73 } */
+  					/* { dg-warning "'field8' is deprecated" "field8" { target *-*-* } 73 } */
 }
 
 struct SS1 {
diff -rupN GCC.orig/gcc/testsuite/gcc.dg/init-bad-1.c GCC/gcc/testsuite/gcc.dg/init-bad-1.c
--- GCC.orig/gcc/testsuite/gcc.dg/init-bad-1.c	2004-11-29 11:33:26.000000000 +0000
+++ GCC/gcc/testsuite/gcc.dg/init-bad-1.c	2005-03-13 18:07:47.000000000 +0000
@@ -10,8 +10,8 @@ void h(a)
      int a = 1; /* { dg-error "error: parameter 'a' is initialized" } */
 {
   struct s x = { 0 }; /* { dg-error "error: variable 'x' has initializer but incomplete type" } */
-  /* { dg-warning "excess elements|near init" "" { target *-*-* } 12 } */
-  /* { dg-error "storage size" "" { target *-*-* } 12 } */
+  /* { dg-warning "excess elements|near init" "excess" { target *-*-* } 12 } */
+  /* { dg-error "storage size" "size" { target *-*-* } 12 } */
 }
 
 char s[1] = "x";
@@ -19,27 +19,27 @@ char s1[1] = { "x" };
 char t[1] = "xy"; /* { dg-warning "warning: initializer-string for array of chars is too long" } */
 char t1[1] = { "xy" }; /* { dg-warning "warning: initializer-string for array of chars is too long" } */
 char u[1] = { "x", "x" }; /* { dg-error "error: excess elements in char array initializer" } */
-/* { dg-error "near init" "" { target *-*-* } 21 } */
+/* { dg-error "near init" "near" { target *-*-* } 21 } */
 
 int i = { }; /* { dg-error "error: empty scalar initializer" } */
-/* { dg-error "near init" "" { target *-*-* } 24 } */
+/* { dg-error "near init" "near" { target *-*-* } 24 } */
 
 int j = { 1 };
 
 int k = { 1, 2 }; /* { dg-warning "warning: excess elements in scalar initializer" } */
-/* { dg-warning "near init" "" { target *-*-* } 29 } */
+/* { dg-warning "near init" "near" { target *-*-* } 29 } */
 
 int a1[1] = { [1] = 0 }; /* { dg-error "error: array index in initializer exceeds array bounds" } */
-/* { dg-error "near init" "" { target *-*-* } 32 } */
+/* { dg-error "near init" "near" { target *-*-* } 32 } */
 int a2[1] = { [-1] = 0 }; /* { dg-error "error: array index in initializer exceeds array bounds" } */
-/* { dg-error "near init" "" { target *-*-* } 34 } */
+/* { dg-error "near init" "near" { target *-*-* } 34 } */
 int a3[1] = { [0 ... 1] = 0 }; /* { dg-error "error: array index range in initializer exceeds array bounds" } */
-/* { dg-error "near init" "" { target *-*-* } 36 } */
+/* { dg-error "near init" "near" { target *-*-* } 36 } */
 int a4[2] = { [1 ... 0] = 0 }; /* { dg-error "error: empty index range in initializer" } */
-/* { dg-error "near init" "" { target *-*-* } 38 } */
+/* { dg-error "near init" "near" { target *-*-* } 38 } */
 int a5[2] = { [0 ... 2] = 0 }; /* { dg-error "error: array index range in initializer exceeds array bounds" } */
-/* { dg-error "near init" "" { target *-*-* } 40 } */
+/* { dg-error "near init" "near" { target *-*-* } 40 } */
 int a6[2] = { [-1 ... 1] = 0 }; /* { dg-error "error: array index in initializer exceeds array bounds" } */
-/* { dg-error "near init" "" { target *-*-* } 42 } */
+/* { dg-error "near init" "near" { target *-*-* } 42 } */
 int a7[] = { [-1 ... 1] = 0 }; /* { dg-error "error: array index in initializer exceeds array bounds" } */
-/* { dg-error "near init" "" { target *-*-* } 44 } */
+/* { dg-error "near init" "near" { target *-*-* } 44 } */
diff -rupN GCC.orig/gcc/testsuite/gcc.dg/init-bad-2.c GCC/gcc/testsuite/gcc.dg/init-bad-2.c
--- GCC.orig/gcc/testsuite/gcc.dg/init-bad-2.c	2004-11-29 11:33:26.000000000 +0000
+++ GCC/gcc/testsuite/gcc.dg/init-bad-2.c	2005-03-13 18:08:22.000000000 +0000
@@ -11,8 +11,8 @@ void h(a)
      int a = 1; /* { dg-error "error: parameter 'a' is initialized" } */
 {
   struct s x = { 0 }; /* { dg-error "error: variable 'x' has initializer but incomplete type" } */
-  /* { dg-warning "excess elements|near init" "" { target *-*-* } 13 } */
-  /* { dg-error "storage size" "" { target *-*-* } 13 } */
+  /* { dg-warning "excess elements|near init" "near" { target *-*-* } 13 } */
+  /* { dg-error "storage size" "size" { target *-*-* } 13 } */
 }
 
 char s[1] = "x";
@@ -20,14 +20,14 @@ char s1[1] = { "x" };
 char t[1] = "xy"; /* { dg-warning "warning: initializer-string for array of chars is too long" } */
 char t1[1] = { "xy" }; /* { dg-warning "warning: initializer-string for array of chars is too long" } */
 char u[1] = { "x", "x" }; /* { dg-error "error: excess elements in char array initializer" } */
-/* { dg-error "near init" "" { target *-*-* } 22 } */
+/* { dg-error "near init" "near" { target *-*-* } 22 } */
 
 int j = { 1 };
 
 int k = { 1, 2 }; /* { dg-warning "warning: excess elements in scalar initializer" } */
-/* { dg-warning "near init" "" { target *-*-* } 27 } */
+/* { dg-warning "near init" "near" { target *-*-* } 27 } */
 
 int a1[1] = { [1] = 0 }; /* { dg-error "error: array index in initializer exceeds array bounds" } */
-/* { dg-error "near init" "" { target *-*-* } 30 } */
+/* { dg-error "near init" "near" { target *-*-* } 30 } */
 int a2[1] = { [-1] = 0 }; /* { dg-error "error: array index in initializer exceeds array bounds" } */
-/* { dg-error "near init" "" { target *-*-* } 32 } */
+/* { dg-error "near init" "near" { target *-*-* } 32 } */
diff -rupN GCC.orig/gcc/testsuite/gcc.dg/init-bad-3.c GCC/gcc/testsuite/gcc.dg/init-bad-3.c
--- GCC.orig/gcc/testsuite/gcc.dg/init-bad-3.c	2004-11-29 11:33:26.000000000 +0000
+++ GCC/gcc/testsuite/gcc.dg/init-bad-3.c	2005-03-13 18:08:45.000000000 +0000
@@ -11,8 +11,8 @@ void h(a)
      int a = 1; /* { dg-error "error: parameter 'a' is initialized" } */
 {
   struct s x = { 0 }; /* { dg-error "error: variable 'x' has initializer but incomplete type" } */
-  /* { dg-error "excess elements|near init" "" { target *-*-* } 13 } */
-  /* { dg-error "storage size" "" { target *-*-* } 13 } */
+  /* { dg-error "excess elements|near init" "near" { target *-*-* } 13 } */
+  /* { dg-error "storage size" "size" { target *-*-* } 13 } */
 }
 
 char s[1] = "x";
@@ -20,14 +20,14 @@ char s1[1] = { "x" };
 char t[1] = "xy"; /* { dg-error "error: initializer-string for array of chars is too long" } */
 char t1[1] = { "xy" }; /* { dg-error "error: initializer-string for array of chars is too long" } */
 char u[1] = { "x", "x" }; /* { dg-error "error: excess elements in char array initializer" } */
-/* { dg-error "near init" "" { target *-*-* } 22 } */
+/* { dg-error "near init" "near" { target *-*-* } 22 } */
 
 int j = { 1 };
 
 int k = { 1, 2 }; /* { dg-error "error: excess elements in scalar initializer" } */
-/* { dg-error "near init" "" { target *-*-* } 27 } */
+/* { dg-error "near init" "near" { target *-*-* } 27 } */
 
 int a1[1] = { [1] = 0 }; /* { dg-error "error: array index in initializer exceeds array bounds" } */
-/* { dg-error "near init" "" { target *-*-* } 30 } */
+/* { dg-error "near init" "near" { target *-*-* } 30 } */
 int a2[1] = { [-1] = 0 }; /* { dg-error "error: array index in initializer exceeds array bounds" } */
-/* { dg-error "near init" "" { target *-*-* } 32 } */
+/* { dg-error "near init" "near" { target *-*-* } 32 } */
diff -rupN GCC.orig/gcc/testsuite/gcc.dg/m-un-2.c GCC/gcc/testsuite/gcc.dg/m-un-2.c
--- GCC.orig/gcc/testsuite/gcc.dg/m-un-2.c	2004-09-12 23:48:33.000000000 +0000
+++ GCC/gcc/testsuite/gcc.dg/m-un-2.c	2005-03-13 18:05:41.000000000 +0000
@@ -16,7 +16,7 @@ struct vtable mtable = {
   malloc,
   free
 }; /* { dg-warning "missing initializer" "warning regression" { target *-*-* } {18} } */
-   /* { dg-warning "initialization for 'mtable._realloc'" "warning regression" { target *-*-* } {18} } */
+   /* { dg-warning "initialization for 'mtable._realloc'" "warning regression 2" { target *-*-* } {18} } */
 
 /* With designated initializers, we assume you meant to leave out the
    initialization of any blank fields.  */
diff -rupN GCC.orig/gcc/testsuite/gcc.dg/parm-mismatch-1.c GCC/gcc/testsuite/gcc.dg/parm-mismatch-1.c
--- GCC.orig/gcc/testsuite/gcc.dg/parm-mismatch-1.c	2004-11-29 11:33:26.000000000 +0000
+++ GCC/gcc/testsuite/gcc.dg/parm-mismatch-1.c	2005-03-13 18:06:46.000000000 +0000
@@ -6,13 +6,13 @@
 
 void f0(); /* { dg-error "error: previous declaration of 'f0' was here" } */
 void f0(int, ...); /* { dg-error "error: conflicting types for 'f0'" } */
-/* { dg-error "note: a parameter list with an ellipsis can't match an empty parameter name list declaration" "" { target *-*-* } 8 } */
+/* { dg-error "note: a parameter list with an ellipsis can't match an empty parameter name list declaration" "note" { target *-*-* } 8 } */
 void f1(int, ...); /* { dg-error "error: previous declaration of 'f1' was here" } */
 void f1(); /* { dg-error "error: conflicting types for 'f1'" } */
-/* { dg-error "note: a parameter list with an ellipsis can't match an empty parameter name list declaration" "" { target *-*-* } 11 } */
+/* { dg-error "note: a parameter list with an ellipsis can't match an empty parameter name list declaration" "note" { target *-*-* } 11 } */
 void f2(); /* { dg-error "error: previous declaration of 'f2' was here" } */
 void f2(char); /* { dg-error "error: conflicting types for 'f2'" } */
-/* { dg-error "note: an argument type that has a default promotion can't match an empty parameter name list declaration" "" { target *-*-* } 14 } */
+/* { dg-error "note: an argument type that has a default promotion can't match an empty parameter name list declaration" "note" { target *-*-* } 14 } */
 void f3(char); /* { dg-error "error: previous declaration of 'f3' was here" } */
 void f3(); /* { dg-error "error: conflicting types for 'f3'" } */
-/* { dg-error "note: an argument type that has a default promotion can't match an empty parameter name list declaration" "" { target *-*-* } 17 } */
+/* { dg-error "note: an argument type that has a default promotion can't match an empty parameter name list declaration" "note" { target *-*-* } 17 } */
diff -rupN GCC.orig/gcc/testsuite/gcc.dg/redecl-1.c GCC/gcc/testsuite/gcc.dg/redecl-1.c
--- GCC.orig/gcc/testsuite/gcc.dg/redecl-1.c	2004-03-24 10:50:44.000000000 +0000
+++ GCC/gcc/testsuite/gcc.dg/redecl-1.c	2005-03-13 18:06:01.000000000 +0000
@@ -94,7 +94,7 @@ static int test7(int x)
 void prime8(void)
 {
   test8();			/* { dg-warning "previous" "" } */
-                                /* { dg-warning "implicit" "" { target *-*-* } 96 } */
+                                /* { dg-warning "implicit" "implicit" { target *-*-* } 96 } */
 }
 
 static int test8(int x)
diff -rupN GCC.orig/gcc/testsuite/g++.dg/other/cv_func.C GCC/gcc/testsuite/g++.dg/other/cv_func.C
--- GCC.orig/gcc/testsuite/g++.dg/other/cv_func.C	2005-02-21 23:15:34.000000000 +0000
+++ GCC/gcc/testsuite/g++.dg/other/cv_func.C	2005-03-13 18:00:39.000000000 +0000
@@ -4,7 +4,7 @@ typedef int FIC(int) const;
 typedef int FI(int);
 
 FIC f; // { dg-error "qualified" }
-// { dg-error "ignoring" "" { target *-*-* } 6 }
+// { dg-error "ignoring" "ignoring" { target *-*-* } 6 }
 struct S {
   FIC f; // OK
 
@@ -15,7 +15,7 @@ struct S {
 };
 FIC S::*pm = &S::f;
 const FI S::*pm2 = &S::f; // { dg-error "qualifier" }
-// { dg-error "cannot convert" "" { target *-*-* } 17 }
+// { dg-error "cannot convert" "cannot convert" { target *-*-* } 17 }
 const FIC S::*pm3 = &S::f; // { dg-error "qualifier" }
 
 int S::f(int) const
diff -rupN GCC.orig/gcc/testsuite/g++.dg/other/offsetof3.C GCC/gcc/testsuite/g++.dg/other/offsetof3.C
--- GCC.orig/gcc/testsuite/g++.dg/other/offsetof3.C	2003-06-09 17:13:06.000000000 +0000
+++ GCC/gcc/testsuite/g++.dg/other/offsetof3.C	2005-03-13 18:00:50.000000000 +0000
@@ -13,4 +13,4 @@ typedef X* pX;
 typedef __SIZE_TYPE__ size_t;
 
 size_t yoff = size_t(&(pX(0)->y)); /* { dg-warning "invalid access" "" } */
-/* { dg-warning "macro was used incorrectly" "" { target *-*-* } 15 } */
+/* { dg-warning "macro was used incorrectly" "macro" { target *-*-* } 15 } */
diff -rupN GCC.orig/gcc/testsuite/g++.dg/parse/error11.C GCC/gcc/testsuite/g++.dg/parse/error11.C
--- GCC.orig/gcc/testsuite/g++.dg/parse/error11.C	2004-01-29 04:26:50.000000000 +0000
+++ GCC/gcc/testsuite/g++.dg/parse/error11.C	2005-03-13 18:01:14.000000000 +0000
@@ -50,4 +50,4 @@ template struct Foo<::B>; // { dg-error 
 
 // On the first error message, an additional note about the use of 
 //  -fpermissive should be present
-// { dg-error "-fpermissive" "" { target *-*-* } 18 }
+// { dg-error "-fpermissive" "-fpermissive" { target *-*-* } 18 }
diff -rupN GCC.orig/gcc/testsuite/g++.dg/tc1/dr108.C GCC/gcc/testsuite/g++.dg/tc1/dr108.C
--- GCC.orig/gcc/testsuite/g++.dg/tc1/dr108.C	2004-01-29 16:45:35.000000000 +0000
+++ GCC/gcc/testsuite/g++.dg/tc1/dr108.C	2005-03-13 18:01:28.000000000 +0000
@@ -12,4 +12,4 @@ template <class T> struct S {
 };
 
 // Additional notes on the same line are allowed
-// { dg-error "" "" { target *-*-* } 10 }
+// { dg-error "" "additional" { target *-*-* } 10 }
diff -rupN GCC.orig/gcc/testsuite/g++.dg/template/local4.C GCC/gcc/testsuite/g++.dg/template/local4.C
--- GCC.orig/gcc/testsuite/g++.dg/template/local4.C	2005-02-03 12:29:40.000000000 +0000
+++ GCC/gcc/testsuite/g++.dg/template/local4.C	2005-03-13 18:01:48.000000000 +0000
@@ -6,6 +6,6 @@ int main () {
   struct S {};
   // We do not simply use "local|match" on line 10 because we want to
   // make sure that "local" appears.
-  // { dg-error "local" "" { target *-*-* } 10 }
+  // { dg-error "local" "local" { target *-*-* } 10 }
   foo<S> (); // { dg-error "trying|match" } 
 }
diff -rupN GCC.orig/gcc/testsuite/g++.dg/template/nontype6.C GCC/gcc/testsuite/g++.dg/template/nontype6.C
--- GCC.orig/gcc/testsuite/g++.dg/template/nontype6.C	2004-02-02 01:11:03.000000000 +0000
+++ GCC/gcc/testsuite/g++.dg/template/nontype6.C	2005-03-13 18:02:01.000000000 +0000
@@ -13,7 +13,7 @@ template <class T>
 void func(void)
 {
   (void)A<T>::type();	 // { dg-error "if a type is meant" }
-// { dg-error "parsed as a non-type" "" { target *-*-* } 15 }
+// { dg-error "parsed as a non-type" "non-type" { target *-*-* } 15 }
 }
 
 template void func<float>(void);    // { dg-error "instantiated from here" }
diff -rupN GCC.orig/gcc/testsuite/g++.dg/warn/deprecated.C GCC/gcc/testsuite/g++.dg/warn/deprecated.C
--- GCC.orig/gcc/testsuite/g++.dg/warn/deprecated.C	2004-09-15 20:39:49.000000000 +0000
+++ GCC/gcc/testsuite/g++.dg/warn/deprecated.C	2005-03-13 18:05:08.000000000 +0000
@@ -53,10 +53,10 @@ int func1()
    int (*pf)() = f1;			/* { dg-warning "'f1' is deprecated" "" } */
 
    z = w + x + y + g1 + g2 + g3;	/* { dg-warning "'x' is deprecated" "" } */
-   					/* { dg-warning "'y' is deprecated" "" { target *-*-* } 55 } */
-   					/* { dg-warning "'g2' is deprecated" "" { target *-*-* } 55 } */
-   					/* { dg-warning "'g3' is deprecated" "" { target *-*-* } 55 } */
-   return f1(); 			/* { dg-warning "'f1' is deprecated" "" } */
+   					/* { dg-warning "'y' is deprecated" "y" { target *-*-* } 55 } */
+   					/* { dg-warning "'g2' is deprecated" "g2" { target *-*-* } 55 } */
+   					/* { dg-warning "'g3' is deprecated" "g3" { target *-*-* } 55 } */
+   return f1(); 			/* { dg-warning "'f1' is deprecated" "f1" } */
 }
 
 int func2(S1 *p)
@@ -71,7 +71,7 @@ int func2(S1 *p)
   p->u1.field5 = g1 + p->field7;
   p->u2.field9;				/* { dg-warning "'u2' is deprecated" "" } */
   return p->u1.field6 + p->field8;	/* { dg-warning "'field6' is deprecated" "" } */
-  					/* { dg-warning "'field8' is deprecated" "" { target *-*-* } 73 } */
+  					/* { dg-warning "'field8' is deprecated" "field8" { target *-*-* } 73 } */
 }
 
 struct SS1 {


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]