diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 6221f18b3e4fab81f48b19e450e5ee28303d5a6c..06a16dd2fa6b4202b090c65d1dc9792f3e7186db 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,12 @@
+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.
+
 2003-03-13  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
 
 	PR fortran/18600
diff --git a/gcc/testsuite/gcc.dg/anon-struct-6.c b/gcc/testsuite/gcc.dg/anon-struct-6.c
index a2042176c037797f8059ef5b0a3c63a2f61434f5..ad961c62aea8692dc0be298de9c0ddae642e7e8d 100644
--- a/gcc/testsuite/gcc.dg/anon-struct-6.c
+++ b/gcc/testsuite/gcc.dg/anon-struct-6.c
@@ -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 --git a/gcc/testsuite/gcc.dg/array-8.c b/gcc/testsuite/gcc.dg/array-8.c
index 6d0a211461bdc8206b4edcca0ce6efb95cb58f0e..44b757b70dfb04ec156e9eb30d5e04365dfd9e42 100644
--- a/gcc/testsuite/gcc.dg/array-8.c
+++ b/gcc/testsuite/gcc.dg/array-8.c
@@ -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 --git a/gcc/testsuite/gcc.dg/cpp/19940712-1.c b/gcc/testsuite/gcc.dg/cpp/19940712-1.c
index 5b4ac8b722c1d6539632aaf0cd36a25642fa4b65..d5ed88973e32c45f4fe472c9415c7deed1309099 100644
--- a/gcc/testsuite/gcc.dg/cpp/19940712-1.c
+++ b/gcc/testsuite/gcc.dg/cpp/19940712-1.c
@@ -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 --git a/gcc/testsuite/gcc.dg/cpp/19951025-1.c b/gcc/testsuite/gcc.dg/cpp/19951025-1.c
index 283b5f53f1abaaee40c164ebcdc31aee6f6ecf9b..b817b68c8aee23803dd8a5f976ec05db815948bc 100644
--- a/gcc/testsuite/gcc.dg/cpp/19951025-1.c
+++ b/gcc/testsuite/gcc.dg/cpp/19951025-1.c
@@ -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 --git a/gcc/testsuite/gcc.dg/cpp/tr-warn6.c b/gcc/testsuite/gcc.dg/cpp/tr-warn6.c
index 5c94e4ca14ae420b8c0f353a583cba57c87e3158..e9aa851d0419b40ab9a1504106cf469bbe6caff8 100644
--- a/gcc/testsuite/gcc.dg/cpp/tr-warn6.c
+++ b/gcc/testsuite/gcc.dg/cpp/tr-warn6.c
@@ -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 --git a/gcc/testsuite/gcc.dg/deprecated.c b/gcc/testsuite/gcc.dg/deprecated.c
index 1e07efe6314b91504d9db231fa8c6595b7683bdc..6ca95d42a747f149cd6cdb7571812d9dd818f090 100644
--- a/gcc/testsuite/gcc.dg/deprecated.c
+++ b/gcc/testsuite/gcc.dg/deprecated.c
@@ -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 --git a/gcc/testsuite/gcc.dg/init-bad-1.c b/gcc/testsuite/gcc.dg/init-bad-1.c
index 7f20b8cbb0a833e984cbce9f18f270426c24e021..1fa1bfb2d82910fa87db2ac8e819316639d32826 100644
--- a/gcc/testsuite/gcc.dg/init-bad-1.c
+++ b/gcc/testsuite/gcc.dg/init-bad-1.c
@@ -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 --git a/gcc/testsuite/gcc.dg/init-bad-2.c b/gcc/testsuite/gcc.dg/init-bad-2.c
index 794cc412db36d5ae64ce90d382e801bc533734e4..23387e500f0c4c9468704b7b87b936fec9d99534 100644
--- a/gcc/testsuite/gcc.dg/init-bad-2.c
+++ b/gcc/testsuite/gcc.dg/init-bad-2.c
@@ -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 --git a/gcc/testsuite/gcc.dg/init-bad-3.c b/gcc/testsuite/gcc.dg/init-bad-3.c
index aed3d35a49f2c72d56b700afe1c1eb4db2b5b5b7..bb149823dc1890038a25dbbf87b97a72775efc76 100644
--- a/gcc/testsuite/gcc.dg/init-bad-3.c
+++ b/gcc/testsuite/gcc.dg/init-bad-3.c
@@ -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 --git a/gcc/testsuite/gcc.dg/m-un-2.c b/gcc/testsuite/gcc.dg/m-un-2.c
index d957f868405fe80dc03d2ad6e5051f8a3caeafc9..0d280bb57933c84c6421b91a0f9e0442aeb3d1c0 100644
--- a/gcc/testsuite/gcc.dg/m-un-2.c
+++ b/gcc/testsuite/gcc.dg/m-un-2.c
@@ -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 --git a/gcc/testsuite/gcc.dg/parm-mismatch-1.c b/gcc/testsuite/gcc.dg/parm-mismatch-1.c
index 59d9447b2e097c8d75b529cc60214c369c0e83c6..6b82b7be1b2af524b6c64bc17e6e5249ba61d9e5 100644
--- a/gcc/testsuite/gcc.dg/parm-mismatch-1.c
+++ b/gcc/testsuite/gcc.dg/parm-mismatch-1.c
@@ -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 --git a/gcc/testsuite/gcc.dg/redecl-1.c b/gcc/testsuite/gcc.dg/redecl-1.c
index 14877667e91d7fc9763e365c287c10a5e37b7a78..75ce208457c6295eedffe8180b6b1b3c22c77c08 100644
--- a/gcc/testsuite/gcc.dg/redecl-1.c
+++ b/gcc/testsuite/gcc.dg/redecl-1.c
@@ -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)