]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
typeck2.c (cxx_incomplete_type_diagnostic): Use inform.
authorPaolo Carlini <paolo.carlini@oracle.com>
Mon, 19 May 2014 17:51:31 +0000 (17:51 +0000)
committerPaolo Carlini <paolo@gcc.gnu.org>
Mon, 19 May 2014 17:51:31 +0000 (17:51 +0000)
/cp
2014-05-19  Paolo Carlini  <paolo.carlini@oracle.com>

* typeck2.c (cxx_incomplete_type_diagnostic): Use inform.
* parser.c (cp_parser_enum_specifier): Likewise.

/testsuite
2014-05-19  Paolo Carlini  <paolo.carlini@oracle.com>

* c-c++-common/gomp/simd4.c: Adjust for inform.
* g++.dg/cpp0x/decltype-call1.C: Likewise.
* g++.dg/cpp0x/forw_enum6.C: Likewise.
* g++.dg/cpp0x/lambda/lambda-ice7.C: Likewise.
* g++.dg/cpp0x/noexcept15.C: Likewise.
* g++.dg/cpp0x/variadic-ex2.C: Likewise.
* g++.dg/eh/spec6.C: Likewise.
* g++.dg/expr/cast1.C: Likewise.
* g++.dg/expr/dtor1.C: Likewise.
* g++.dg/ext/is_base_of_diagnostic.C: Likewise.
* g++.dg/ext/unary_trait_incomplete.C: Likewise.
* g++.dg/gomp/pr49223-2.C: Likewise.
* g++.dg/gomp/udr-4.C: Likewise.
* g++.dg/init/delete1.C: Likewise.
* g++.dg/other/crash-2.C: Likewise.
* g++.dg/parse/crash24.C: Likewise.
* g++.dg/parse/crash25.C: Likewise.
* g++.dg/parse/crash31.C: Likewise.
* g++.dg/parse/crash49.C: Likewise.
* g++.dg/parse/crash50.C: Likewise.
* g++.dg/parse/crash54.C: Likewise.
* g++.dg/parse/dtor7.C: Likewise.
* g++.dg/parse/error40.C: Likewise.
* g++.dg/parse/fused-params1.C: Likewise.
* g++.dg/parse/new1.C: Likewise.
* g++.dg/template/crash35.C: Likewise.
* g++.dg/template/crash59.C: Likewise.
* g++.dg/template/crash77.C: Likewise.
* g++.dg/template/error51.C: Likewise.
* g++.dg/template/incomplete1.C: Likewise.
* g++.dg/template/incomplete3.C: Likewise.
* g++.dg/template/incomplete4.C: Likewise.
* g++.dg/template/incomplete5.C: Likewise.
* g++.dg/template/inherit8.C: Likewise.
* g++.dg/template/instantiate1.C: Likewise.
* g++.dg/template/instantiate3.C: Likewis: Likewise.
* g++.dg/template/offsetof2.C: Likewise.
* g++.dg/tm/pr51928.C: Likewise.
* g++.dg/warn/Wdelete-incomplete-1.C: Likewise.
* g++.dg/warn/incomplete1.C: Likewise.
* g++.dg/warn/incomplete2.C: Likewise.
* g++.old-deja/g++.brendan/friend4.C: Likewise.
* g++.old-deja/g++.bugs/900121_01.C: Likewise.
* g++.old-deja/g++.bugs/900214_01.C: Likewise.
* g++.old-deja/g++.eh/catch1.C: Likewise.
* g++.old-deja/g++.eh/spec6.C: Likewise.
* g++.old-deja/g++.mike/p7868.C: Likewise.
* g++.old-deja/g++.other/crash38.C: Likewise.
* g++.old-deja/g++.other/enum2.C: Likewise.
* g++.old-deja/g++.other/incomplete.C: Likewise.
* g++.old-deja/g++.other/vaarg3.C: Likewise.
* g++.old-deja/g++.pt/crash9.C: Likewise.
* g++.old-deja/g++.pt/niklas01a.C: Likewise.
* g++.old-deja/g++.pt/typename8.C: Likewise.
* g++.old-deja/g++.robertl/ice990323-1.C: Likewise.

From-SVN: r210623

59 files changed:
gcc/cp/ChangeLog
gcc/cp/parser.c
gcc/cp/typeck2.c
gcc/testsuite/ChangeLog
gcc/testsuite/c-c++-common/gomp/simd4.c
gcc/testsuite/g++.dg/cpp0x/decltype-call1.C
gcc/testsuite/g++.dg/cpp0x/forw_enum6.C
gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice7.C
gcc/testsuite/g++.dg/cpp0x/noexcept15.C
gcc/testsuite/g++.dg/cpp0x/variadic-ex2.C
gcc/testsuite/g++.dg/eh/spec6.C
gcc/testsuite/g++.dg/expr/cast1.C
gcc/testsuite/g++.dg/expr/dtor1.C
gcc/testsuite/g++.dg/ext/is_base_of_diagnostic.C
gcc/testsuite/g++.dg/ext/unary_trait_incomplete.C
gcc/testsuite/g++.dg/gomp/pr49223-2.C
gcc/testsuite/g++.dg/gomp/udr-4.C
gcc/testsuite/g++.dg/init/delete1.C
gcc/testsuite/g++.dg/other/crash-2.C
gcc/testsuite/g++.dg/parse/crash24.C
gcc/testsuite/g++.dg/parse/crash25.C
gcc/testsuite/g++.dg/parse/crash31.C
gcc/testsuite/g++.dg/parse/crash49.C
gcc/testsuite/g++.dg/parse/crash50.C
gcc/testsuite/g++.dg/parse/crash54.C
gcc/testsuite/g++.dg/parse/dtor7.C
gcc/testsuite/g++.dg/parse/error40.C
gcc/testsuite/g++.dg/parse/fused-params1.C
gcc/testsuite/g++.dg/parse/new1.C
gcc/testsuite/g++.dg/template/crash35.C
gcc/testsuite/g++.dg/template/crash59.C
gcc/testsuite/g++.dg/template/crash77.C
gcc/testsuite/g++.dg/template/error51.C
gcc/testsuite/g++.dg/template/incomplete1.C
gcc/testsuite/g++.dg/template/incomplete3.C
gcc/testsuite/g++.dg/template/incomplete4.C
gcc/testsuite/g++.dg/template/incomplete5.C
gcc/testsuite/g++.dg/template/inherit8.C
gcc/testsuite/g++.dg/template/instantiate1.C
gcc/testsuite/g++.dg/template/instantiate3.C
gcc/testsuite/g++.dg/template/offsetof2.C
gcc/testsuite/g++.dg/tm/pr51928.C
gcc/testsuite/g++.dg/warn/Wdelete-incomplete-1.C
gcc/testsuite/g++.dg/warn/incomplete1.C
gcc/testsuite/g++.dg/warn/incomplete2.C
gcc/testsuite/g++.old-deja/g++.brendan/friend4.C
gcc/testsuite/g++.old-deja/g++.bugs/900121_01.C
gcc/testsuite/g++.old-deja/g++.bugs/900214_01.C
gcc/testsuite/g++.old-deja/g++.eh/catch1.C
gcc/testsuite/g++.old-deja/g++.eh/spec6.C
gcc/testsuite/g++.old-deja/g++.mike/p7868.C
gcc/testsuite/g++.old-deja/g++.other/crash38.C
gcc/testsuite/g++.old-deja/g++.other/enum2.C
gcc/testsuite/g++.old-deja/g++.other/incomplete.C
gcc/testsuite/g++.old-deja/g++.other/vaarg3.C
gcc/testsuite/g++.old-deja/g++.pt/crash9.C
gcc/testsuite/g++.old-deja/g++.pt/niklas01a.C
gcc/testsuite/g++.old-deja/g++.pt/typename8.C
gcc/testsuite/g++.old-deja/g++.robertl/ice990323-1.C

index b5ad1af0e5f152f225cd2dce279ede6d909dd9b2..1b0916cdedb467bdd4956e7f6574df0417c04af3 100644 (file)
@@ -1,3 +1,8 @@
+2014-05-19  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       * typeck2.c (cxx_incomplete_type_diagnostic): Use inform.
+       * parser.c (cp_parser_enum_specifier): Likewise.
+
 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
 
        * class.c (sorted_fields_type_new): Adjust.
index 031fa9da7a93fd0464092362d15eec42a3f1df42..0c9e113236bd64094c6a76f975f29e6e2ec9d73e 100644 (file)
@@ -15540,9 +15540,10 @@ cp_parser_enum_specifier (cp_parser* parser)
        }
       else
        {
-         error_at (type_start_token->location, "multiple definition of %q#T", type);
-         error_at (DECL_SOURCE_LOCATION (TYPE_MAIN_DECL (type)),
-                   "previous definition here");
+         error_at (type_start_token->location,
+                   "multiple definition of %q#T", type);
+         inform (DECL_SOURCE_LOCATION (TYPE_MAIN_DECL (type)),
+                 "previous definition here");
          type = error_mark_node;
        }
 
index a0f39b6553ecb300bb97802efdf04cf885146c93..fb1546f91c8ee9fc880d38dd3b58d82d5345e85a 100644 (file)
@@ -438,7 +438,7 @@ void
 cxx_incomplete_type_diagnostic (const_tree value, const_tree type, 
                                diagnostic_t diag_kind)
 {
-  int decl = 0;
+  bool is_decl = false, complained = false;
 
   gcc_assert (diag_kind == DK_WARNING 
              || diag_kind == DK_PEDWARN 
@@ -452,10 +452,10 @@ cxx_incomplete_type_diagnostic (const_tree value, const_tree type,
                     || TREE_CODE (value) == PARM_DECL
                     || TREE_CODE (value) == FIELD_DECL))
     {
-      emit_diagnostic (diag_kind, input_location, 0,
-                      "%q+D has incomplete type", value);
-      decl = 1;
-    }
+      complained = emit_diagnostic (diag_kind, input_location, 0,
+                                   "%q+D has incomplete type", value);
+      is_decl = true;
+    } 
  retry:
   /* We must print an error message.  Be clever about what it says.  */
 
@@ -464,15 +464,19 @@ cxx_incomplete_type_diagnostic (const_tree value, const_tree type,
     case RECORD_TYPE:
     case UNION_TYPE:
     case ENUMERAL_TYPE:
-      if (!decl)
-       emit_diagnostic (diag_kind, input_location, 0,
-                        "invalid use of incomplete type %q#T", type);
-      if (!TYPE_TEMPLATE_INFO (type))
-       emit_diagnostic (diag_kind, input_location, 0,
-                        "forward declaration of %q+#T", type);
-      else
-       emit_diagnostic (diag_kind, input_location, 0,
-                        "declaration of %q+#T", type);
+      if (!is_decl)
+       complained = emit_diagnostic (diag_kind, input_location, 0,
+                                     "invalid use of incomplete type %q#T",
+                                     type);
+      if (complained)
+       {
+         if (!TYPE_TEMPLATE_INFO (type))
+           inform (DECL_SOURCE_LOCATION (TYPE_MAIN_DECL (type)),
+                   "forward declaration of %q#T", type);
+         else
+           inform (DECL_SOURCE_LOCATION (TYPE_MAIN_DECL (type)),
+                   "declaration of %q#T", type);
+       }
       break;
 
     case VOID_TYPE:
index 2142b677bb1bb132ecdd5f5ed1d178088ade7232..f4c9995544f6102c432ebdcc031901d1bdf0f545 100644 (file)
@@ -1,3 +1,61 @@
+2014-05-19  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       * c-c++-common/gomp/simd4.c: Adjust for inform.
+       * g++.dg/cpp0x/decltype-call1.C: Likewise.
+       * g++.dg/cpp0x/forw_enum6.C: Likewise.
+       * g++.dg/cpp0x/lambda/lambda-ice7.C: Likewise.
+       * g++.dg/cpp0x/noexcept15.C: Likewise.
+       * g++.dg/cpp0x/variadic-ex2.C: Likewise.
+       * g++.dg/eh/spec6.C: Likewise.
+       * g++.dg/expr/cast1.C: Likewise.
+       * g++.dg/expr/dtor1.C: Likewise.
+       * g++.dg/ext/is_base_of_diagnostic.C: Likewise.
+       * g++.dg/ext/unary_trait_incomplete.C: Likewise.
+       * g++.dg/gomp/pr49223-2.C: Likewise.
+       * g++.dg/gomp/udr-4.C: Likewise.
+       * g++.dg/init/delete1.C: Likewise.
+       * g++.dg/other/crash-2.C: Likewise.
+       * g++.dg/parse/crash24.C: Likewise.
+       * g++.dg/parse/crash25.C: Likewise.
+       * g++.dg/parse/crash31.C: Likewise.
+       * g++.dg/parse/crash49.C: Likewise.
+       * g++.dg/parse/crash50.C: Likewise.
+       * g++.dg/parse/crash54.C: Likewise.
+       * g++.dg/parse/dtor7.C: Likewise.
+       * g++.dg/parse/error40.C: Likewise.
+       * g++.dg/parse/fused-params1.C: Likewise.
+       * g++.dg/parse/new1.C: Likewise.
+       * g++.dg/template/crash35.C: Likewise.
+       * g++.dg/template/crash59.C: Likewise.
+       * g++.dg/template/crash77.C: Likewise.
+       * g++.dg/template/error51.C: Likewise.
+       * g++.dg/template/incomplete1.C: Likewise.
+       * g++.dg/template/incomplete3.C: Likewise.
+       * g++.dg/template/incomplete4.C: Likewise.
+       * g++.dg/template/incomplete5.C: Likewise.
+       * g++.dg/template/inherit8.C: Likewise.
+       * g++.dg/template/instantiate1.C: Likewise.
+       * g++.dg/template/instantiate3.C: Likewis: Likewise.
+       * g++.dg/template/offsetof2.C: Likewise.
+       * g++.dg/tm/pr51928.C: Likewise.
+       * g++.dg/warn/Wdelete-incomplete-1.C: Likewise.
+       * g++.dg/warn/incomplete1.C: Likewise.
+       * g++.dg/warn/incomplete2.C: Likewise.
+       * g++.old-deja/g++.brendan/friend4.C: Likewise.
+       * g++.old-deja/g++.bugs/900121_01.C: Likewise.
+       * g++.old-deja/g++.bugs/900214_01.C: Likewise.
+       * g++.old-deja/g++.eh/catch1.C: Likewise.
+       * g++.old-deja/g++.eh/spec6.C: Likewise.
+       * g++.old-deja/g++.mike/p7868.C: Likewise.
+       * g++.old-deja/g++.other/crash38.C: Likewise.
+       * g++.old-deja/g++.other/enum2.C: Likewise.
+       * g++.old-deja/g++.other/incomplete.C: Likewise.
+       * g++.old-deja/g++.other/vaarg3.C: Likewise.
+       * g++.old-deja/g++.pt/crash9.C: Likewise.
+       * g++.old-deja/g++.pt/niklas01a.C: Likewise.
+       * g++.old-deja/g++.pt/typename8.C: Likewise.
+       * g++.old-deja/g++.robertl/ice990323-1.C: Likewise.
+
 2014-05-19  Joseph Myers  <joseph@codesourcery.com>
 
        * lib/target-supports.exp
index 37901b6a07f240d99ab427dc32ce10861ee8bb49..399003388ae148fb61499a0f8be8cbc196049b68 100644 (file)
@@ -2,7 +2,7 @@
 /* { dg-options "-fopenmp" } */
 /* { dg-additional-options "-std=c99" { target c } } */
 
-struct S *p;   /* { dg-error "forward declaration" "" { target c++ } } */
+struct S *p;   /* { dg-message "forward declaration" "" { target c++ } } */
 float f;
 int j;
 
index 2616bb09046d6fdf70d1eed3b2dd21b37be108ff..39069ba228f45e110138b017cf03c050d2a543cd 100644 (file)
@@ -2,7 +2,7 @@
 // N3276
 // { dg-do compile { target c++11 } }
 
-struct A;                      // { dg-error "forward declaration" }
+struct A;                      // { dg-message "forward declaration" }
 A f();
 
 decltype(f()) g1();             // OK
index ccce13a79b856f9c4ea004838b88f0a07a6012c7..7d2094df52bf1c8a106a7cbfe3642b13e1ab766b 100644 (file)
@@ -25,10 +25,10 @@ enum class E3 e3; // { dg-error "scoped enum must not use" }
 enum struct E3 e4; // { dg-error "scoped enum must not use" }
 enum E5 : int e5; // { dg-error "expected|invalid type" }
 
-enum E6 : int { a, b, c }; // { dg-error "previous definition" }
+enum E6 : int { a, b, c }; // { dg-message "previous definition" }
 enum E6 : int { a, b, c }; // { dg-error "multiple definition" }
 
-enum class E7 { }; // { dg-error "previous definition" }
+enum class E7 { }; // { dg-message "previous definition" }
 enum class E7 { a, b, c }; // { dg-error "multiple definition" }
 
 namespace N1
index d0ee866110d0bc64e75bcbe9d4ee799e2ec5d62a..1d7dfcc933ea5c93bc762c25d1a973f4817aa085 100644 (file)
@@ -1,7 +1,7 @@
 // PR c++/52487
 // { dg-do compile { target c++11 } }
 
-struct A;         // { dg-error "forward declaration" }
+struct A;         // { dg-message "forward declaration" }
 
 void foo(A& a)
 {
index 909ee9748bcb97a10b66ca94527e8ea0796e3f95..5cbbea8a91a42757fc697a61e44d8be70550cfe3 100644 (file)
@@ -23,12 +23,10 @@ template<class Tp>
     return single<typename std::decay<Tp>::type>(x);
   }
 
-class Blob;  // { dg-error "forward declaration" }
+class Blob;  // { dg-message "forward declaration" }
 
 void
 foo(Blob *b)
 {
   make_single(*b);
 }
-
-// { dg-prune-output "include" }
index 015d9d8403f2d46b7447edc0863e4742b291fd0a..a887e339848c3f61ae25d1cc511fe8106cdd0c1d 100644 (file)
@@ -1,5 +1,5 @@
 // { dg-do compile { target c++11 } }
-template<class... Types> struct B { // { dg-error "declaration of" }
+template<class... Types> struct B { // { dg-message "declaration of" }
   void f3();
   void f4();
 };
index eb1177b07f515c017579ab5154035db031661122..d6d817628916570a02532791ed8885d3c18e5e14 100644 (file)
@@ -3,7 +3,7 @@
 
 // { dg-options "-fpermissive -w" }
 
-struct A;                      // { dg-error "" }
+struct A;                      // { dg-message "" }
 
 struct B
 {
index ee1adcc3d23d1c5587379b47e059fd11b43fd1da..2f0e94fc698b1aa2254005f856b3aeb67762d55a 100644 (file)
@@ -1,3 +1,3 @@
-struct S; // { dg-error "forward" } 
+struct S; // { dg-message "forward" } 
 
 void f(S* p) { ((S) (*p)); } // { dg-error "" }
index 0775a93c91bdb370f6a72a0f772ec4b39927773c..5570f786a641dd420da520b29f505d6f0ea71ec0 100644 (file)
@@ -1,4 +1,4 @@
-class Foo; // { dg-error "" }
+class Foo; // { dg-message "" }
 
 void
 bar(void* p)
index 4ccc72b9e943ac22c8cf8802daab797fe080c34b..aac6cfba4803b2f629e0b2eca6f477a4fa8aff02 100644 (file)
@@ -1,7 +1,7 @@
 class A
 { };
 
-class B; // { dg-error "forward declaration" }
+class B; // { dg-message "forward declaration" }
 
 union C
 { };
index ecc5ec224b3002640e5bfe8146ce16c452703c46..b60ce84dcb2323396338f58c445d68ed1c121bbd 100644 (file)
@@ -1,6 +1,6 @@
 // PR c++/39475
 
-struct I; // { dg-error "forward declaration" }
+struct I; // { dg-message "forward declaration" }
 struct C { };
 
 bool nas1 = __has_nothrow_assign(I); // { dg-error "incomplete type" }
index 95397733ebee0024452f4ab41099b94fa40bc83a..b367b0419b8c776e8d8ea3df3b7b7b800916c7cc 100644 (file)
@@ -3,7 +3,7 @@
 // { dg-require-effective-target tls }
 // { dg-options "-fopenmp" }
 
-struct S;                      // { dg-error "forward declaration" }
+struct S;                      // { dg-message "forward declaration" }
 extern __thread struct S s;    // { dg-error "has incomplete type" }
 struct T;
 extern __thread struct T t;
index f1b388bbd918c512f1c54e78f63f0c066e9d6f24..566d7d1321fe654633fb381c8031c18b5f6c2844 100644 (file)
@@ -1,6 +1,6 @@
 // { dg-do compile }
 
-struct S;                                      // { dg-error "forward declaration" }
+struct S;                                      // { dg-message "forward declaration" }
 #pragma omp declare reduction (+:S:omp_out.s += omp_in.s) // { dg-error "invalid use of incomplete type" }
 struct S { int s; S () : s (1) {} };
 #pragma omp declare reduction (*:S:omp_out.s *= omp_in.s)
index 304dca1caf995a234235abf0ac27b5b683371c12..8236abcd6fe262bce6d861b003e61d9618aac452 100644 (file)
@@ -1,6 +1,6 @@
 // PR c++/19811
 
-class C; // { dg-warning "forward" }
+class C; // { dg-message "forward" }
 
 void foo(void *p) {
   delete [] ((C*)p) ; // { dg-warning "problem|incomplete" }
index 961a18a2384fcd75cd085ed7c876df58f6878d7c..b8645b09309b1cf67f6fd758c91175f944219525 100644 (file)
@@ -3,7 +3,7 @@
 // Contributed by Hans Buchmann <hans dot buchmann at fhso dot ch>
 // PR c++/14033: ICE while inlining a function with incomplete parameter
 
-struct A;           // { dg-error "forward declaration" }
+struct A;           // { dg-message "forward declaration" }
 void foo(A a) {}    // { dg-error "incomplete" }
 struct A {};
 
index fdc4f1e7c9d2df55ed6dce980611b398dca863a7..d0804b13381850aafeef2be28357ec163223bd42 100644 (file)
@@ -1,6 +1,6 @@
 // PR c++/20461
 // { dg-do compile }
 
-class C; // { dg-error "forward declaration" }
+class C; // { dg-message "forward declaration" }
 
 C::C() : f() {} // { dg-error "invalid use|does not have" }
index d7f20c62f26fa21716a73662dde13abdf822acf3..f0d8ffd7218d9592be47266102cd0cac1342e019 100644 (file)
@@ -4,7 +4,7 @@
  
 struct yyguts_t 
 { 
-  class TestScanner* yyextra_r; // { dg-error "forward declaration" }
+  class TestScanner* yyextra_r; // { dg-message "forward declaration" }
 }; 
     
 TestScanner::TestScanner() {} // { dg-error "invalid use" }
index b0a7e1877ce21b3842d57bff515ef47dc0e1429d..c22ad5ed3ba09980959d5ac54a866ed4658379f4 100644 (file)
@@ -1,4 +1,4 @@
-struct A // { dg-error "forward declaration" }
+struct A // { dg-message "forward declaration" }
 {
   A : A; // { dg-error "expected|incomplete" }
   A : B; // { dg-error "not declared|incomplete" }
index 07d7c3b2f95373cdc1c55f45e002290801d9f7e8..a922ef3cfc749f6b360b0b4fe6c5b362d61e11a5 100644 (file)
@@ -1,7 +1,7 @@
 // PR c++/37552
 // { dg-do compile }
 
-extern struct A a[1];  // { dg-error "forward declaration" }
+extern struct A a[1];  // { dg-message "forward declaration" }
 
 void
 foo ()
index 711048de160777d0d20474339d6fb117f730cb54..630eb25a94d68f35088f5ce9489b17b132d7b77b 100644 (file)
@@ -2,7 +2,7 @@
 // Origin PR c++/38636
 // { dg-do compile }
 
-struct A; // { dg-error "forward declaration of 'struct A'" }
+struct A; // { dg-message "forward declaration of 'struct A'" }
 
 A::A(
 
index 222082ab79b7678c08fd4c83452104c5c1f37209..89d59ef2c165ba8d518e20bf509ed9570ed168ea 100644 (file)
@@ -1,6 +1,6 @@
 // PR c++/42057
 
-struct A; // { dg-error "forward declaration" }
+struct A; // { dg-message "forward declaration" }
 
 struct B
 {
index a8095126667f8836ca65ac2fc24aab1cfc1244fe..343b2e42c238b77e28159957ea97ed80bca80eb0 100644 (file)
@@ -1,4 +1,4 @@
 // PR c++/25856
 
-struct A; // { dg-error "forward" } 
+struct A; // { dg-message "forward" } 
 A::~A() {} // { dg-error "incomplete" }
index 9ab7552ae8396aa885e361f4a65675551065759a..643f1f56c53b6f91e3a0e86db0b4ea663ecff008 100644 (file)
@@ -1,7 +1,7 @@
 // PR c++/31489
 
-class foo;   // { dg-error "'class foo'" }
-struct bar;  // { dg-error "'struct bar'" }
+class foo;   // { dg-message "'class foo'" }
+struct bar;  // { dg-message "'struct bar'" }
 
 int main()
 {
index 33732fc2871df9df2fe4bf22153b33d6c020c487..ebb226befb9aa1298cc5f8dc075d84644c1a9c50 100644 (file)
@@ -2,7 +2,7 @@
 // Origin: Alexander Zvyagin <Alexander.Zviagine@cern.ch>
 // { dg-do compile }
 
-template <int N,typename T> struct A //  { dg-error "" }
+template <int N,typename T> struct A //  { dg-message "" }
 {
     typedef T X;
     template <int M> void foo (const A<M,X>&);
index d61c44633cef2c3747663a1415b1c23ff013bf83..d8c376617d2e2be37a9228b556bf40dd22c8432f 100644 (file)
@@ -1,4 +1,4 @@
-struct T; // { dg-error "forward" }
+struct T; // { dg-message "forward" }
 T* manage(T* t);
 template <class Obj> struct ObjectSlot0_ {
   void create() {
index 348d91d0cafa2be887f008bc9ce0accbf1856b5f..c457798dd02c06420ac5088c62bcadd204e6c8a6 100644 (file)
@@ -1,7 +1,7 @@
 // PR c++/20463
 // { dg-do compile }
 
-template <typename T> struct C; // { dg-error "declaration" }
+template <typename T> struct C; // { dg-message "declaration" }
 
 template <typename T> void C<T>::f() // { dg-error "invalid|template" }
 {
index 61d2188fc9ef02f352f547ebaa25d67f8d3adf16..ebc0e281c54c25e4fc58ba364ce122ba42e095df 100644 (file)
@@ -1,6 +1,6 @@
 //PR c++/27329
 
-template<int> struct A                          // { dg-error "forward declaration" }
+template<int> struct A                          // { dg-message "forward declaration" }
 !                                               // { dg-error "expected unqualified-id" }
   ;
 
index b4d6e8f4a673aa5509c9da5df84e3894c4077be9..21747792c2f07a9109ff74d0a5e3e884fc7fe38f 100644 (file)
@@ -1,5 +1,5 @@
 // PR c++/34603
 
-template<typename> struct A; // { dg-error "declaration" }
+template<typename> struct A; // { dg-message "declaration" }
 
 template<typename T> A<T>::A( struct A; // { dg-error "definition|expected|incomplete" }
index b3a6cfb3d279a56bfd352fbca3c09e12d1f69e05..304a13a70fb00ed23e618085f41a9dd2c736d788 100644 (file)
@@ -2,7 +2,7 @@
 
 template<int> void foo()
 {
-  struct A;                // { dg-error "declaration" }
+  struct A;                // { dg-message "declaration" }
   struct B : A {};         // { dg-error "invalid use of incomplete" }
 }
 
index e4997ef01465e697c51ddae2b84fa06c8b34663a..53bd8170e62db058828b319a9333dba2c99b10dd 100644 (file)
@@ -2,7 +2,7 @@
 // Origin: Ivan Godard <igodard at pacbell dot net>
 // PR c++/17447: Detect parameters of dependent types even in templates
 
-struct B;   // { dg-error "forward declaration" }
+struct B;   // { dg-message "forward declaration" }
 template<typename T> struct A {
 
     friend A& operator <<(A& a, B b) { return a; } // { dg-error "incomplete" }
index 8a20bba74d572ebe71b7c9c5ef0ed76112ad6fd7..9b2efb77b7ee1f6e0bf24349aac6b1d7344a5e32 100644 (file)
@@ -1,5 +1,5 @@
 // PR c++/27315
 // { dg-do compile }
 
-struct A;                  // { dg-error "forward declaration" }
+struct A;                  // { dg-message "forward declaration" }
 template void A::foo<0>(); // { dg-error "before|incomplete" }
index 871e503ad87e4406fcfaa193b03fd3f8b7e2a31c..7cff66bdc04d158abb57fd55a77eabbef0c84ee8 100644 (file)
@@ -1,7 +1,7 @@
 // PR c++/33501
 // { dg-do compile }
 
-class A;       // { dg-error "forward declaration" }
+class A;       // { dg-message "forward declaration" }
 
 template <typename T> struct X
 {
index b0a178b625746e36dabda6d055428a59663a613a..1bd21b95e8c5b45ef06e410f0dbbec29522ea9af 100644 (file)
@@ -1,7 +1,7 @@
 // PR c++/33501
 // { dg-do compile }
 
-class A;       // { dg-error "forward declaration" }
+class A;       // { dg-message "forward declaration" }
 
 template <typename T> struct X
 {
index 3176dc06d0b6485e610a3b7d5129f4e5f7d1c522..f2ebd5cba6fecf323dcbdbb320cea21b04cb2bec 100644 (file)
@@ -4,7 +4,7 @@ template <typename T>
 struct A
 {
   template <typename U>
-  struct B : public A <B<U> >  // { dg-error "declaration" }
+  struct B : public A <B<U> >  // { dg-message "declaration" }
   {
     struct C : public B<U>     // { dg-error "incomplete" }
     {
index dd501684e6389708defce5de0d7d57368282e002..a9c8cf869681faef752808009c483268d3b58f27 100644 (file)
@@ -12,7 +12,7 @@ template <class T> struct Y {
   X<T> x;                      // { dg-message "required" }
 };
 
-template <class T> struct Z {  // { dg-error "declaration" }
+template <class T> struct Z {  // { dg-message "declaration" }
   Y<Z<T> > y;                  // { dg-message "required" }
 };
 
index c0754da92272b18d56030c9cdfe37b6ce4cba06a..e99ec84c2ac98c654881a39f707e560e37273654 100644 (file)
@@ -4,7 +4,7 @@
 // PR c++/7639
 // ICE when accessing member with incomplete type.
 
-class ACE_Null_Mutex;  // { dg-error "forward declaration" }
+class ACE_Null_Mutex;  // { dg-message "forward declaration" }
 
 template <class TYPE>
 struct ACE_Cleanup_Adapter
index da888f7a59eb17c7148a17bac303f78f3208095e..6f741a96205b5e122466aad8ed8597bfcc8168fe 100644 (file)
@@ -1,7 +1,7 @@
 // PR c++/49085
 
 template <class T>
-struct A                       // { dg-error "declaration" }
+struct A                       // { dg-message "declaration" }
 {
   int i, j;
   int ar[__builtin_offsetof(A,j)]; // { dg-error "incomplete type" }
index 22dbadd4bf5f0e1bc5b56feabae795fe1b462b19..5ea0b0457a140bd21fb3c57b56eadae3cf524576 100644 (file)
@@ -1,7 +1,7 @@
 /* { dg-do compile } */
 /* { dg-options "-fgnu-tm" } */
 
-struct A; // { dg-error "forward declaration of 'struct A'" }
+struct A; // { dg-message "forward declaration of 'struct A'" }
 
 struct B
 {
index 69689ba3488ae8714012178145e79334427dc0b2..729ea21017bf81425e6e50651aee7ec33b8a1e41 100644 (file)
@@ -1,6 +1,6 @@
 // PR c++/43452
 
-class Foo;         // { dg-warning "forward" }
+class Foo;         // { dg-message "forward" }
 int main() {
    Foo* p;         // { dg-warning "incomplete" }
    delete [] p;    // { dg-warning "problem" }
index 9dc645d82f9d132c063a13dce15b70bef5c3564b..1fa27123e6bb580afa07be7e09c3d244b0e69f5d 100644 (file)
@@ -9,7 +9,7 @@
 // (But the deletion does not constitute an ill-formed program. So the
 // program should nevertheless compile, but it should give a warning.)
 
-class A;       // { dg-warning "forward declaration of 'class A'" "" }
+class A;       // { dg-message "forward declaration of 'class A'" "" }
 
 A *a;          // { dg-warning "'a' has incomplete type" "" }
 
index c307c300892e2139700da4b2dac09d4292e85701..bfaf6be310c5f867bcbe528faa0244094c1ffbd9 100644 (file)
@@ -1,7 +1,7 @@
 // PR c++/33501
 // { dg-do compile }
 
-class A;       // { dg-error "forward declaration" }
+class A;       // { dg-message "forward declaration" }
 
 int f (A);                     // { dg-message "initializing" }
 const A &make ();
index 4d436e5c9c6772f8aefeb1761e9d764b4321967a..dc55280751d1cb101d01bbcdede7dc588e682dfc 100644 (file)
@@ -2,5 +2,5 @@
 // GROUPS passed friends
 // do_friend should complain that foo was declared as a friend of
 // A before A was defined
-struct A; // { dg-error "forward" } 
+struct A; // { dg-message "forward" } 
 struct B { friend A::foo (); };// { dg-error "" } .*
index 3259163582463302744698e4c99dac4913c91562..da619b883377788744f0a50dba7416a66ef92c95 100644 (file)
@@ -7,7 +7,7 @@
 
 // keywords: abort, incomplete types, reference types, formal parameters
 
-struct s0;              // { dg-error "" } forward declaration
+struct s0;              // { dg-message "" } forward declaration
 
 void function (struct s0 &arg1, struct s0 &arg2)
 {
index 88cafbfc1817b9d116b10c94e44131f5edd0e7e0..4b161bf89c0d7841bb888175a5ff1a8d42413876 100644 (file)
@@ -8,7 +8,7 @@
 
 // keywords: friends, incomplete types, function members
 
-struct A;                       // { dg-error "" } forward declaration
+struct A;                       // { dg-message "" } forward declaration
 
 struct B {
   friend void A::foo();                // { dg-error "" } type A is incomplete
index 7aa70ac97b30df6901fc5c92ef211c4d610b2e13..67779d945eafd8217da0bf279289a2def339dbf2 100644 (file)
@@ -5,7 +5,7 @@
 
 // We cannot catch an incomplete type, or ptr to one
 
-struct A; // { dg-error "" } forward decl
+struct A; // { dg-message "" } forward decl
 
 void fn()
 {
index 7780c4a9dafddca6cb02ba5763da09480f6c6eee..85e9b4e7c4e74fd76d159dc6a23f944d1ac6afe3 100644 (file)
@@ -7,7 +7,7 @@
 
 // [except.spec] 1, a type in an exception specifier shall not be incomplete,
 // or pointer or ref to incomplete
-struct X;                         // { dg-error "" } forward declaration.*
+struct X;                         // { dg-message "" } forward declaration.*
 void fn1() throw(X);              // { dg-error "" } invalid use of undefined type
 void fn2() throw(X *);            // { dg-error "" } invalid use of undefined type
 void fn3() throw(X &);            // { dg-error "" } invalid use of undefined tyoe
index 48bdf8b2500cfc73790545f84668935f52eb59d4..8a94b3ecb1a8bfd25d63758b39cefe2484e65f14 100644 (file)
@@ -4,13 +4,13 @@
 struct DIAGTYP {
 };
 struct DIAGTYP1 {
-  struct DIAGTYP;       // { dg-error "" } forward declaration
+  struct DIAGTYP;       // { dg-message "" } forward declaration
   void bar() { new struct DIAGTYP; }   // { dg-error "" } undefined
   void foo() { new struct DIAGTYP1; }
 };
 
 int main () {
-  struct DIAGTYP;               // { dg-error "" } forward declaration
+  struct DIAGTYP;               // { dg-message "" } forward declaration
   struct DIAGTYP  *lerror_desc;
   lerror_desc= new struct DIAGTYP;     // { dg-error "" } undefined
 }
index d07115e51ca1e457486b75cc67f5823335d3fe0a..87e55556128cf87b0d637169bc7aa751d133fe03 100644 (file)
@@ -6,7 +6,7 @@
 // Bug 611. We ICEd when calling a member function returning an incomplete
 // type by value.
 
-struct X;   // { dg-error "" } forward ref
+struct X;   // { dg-message "" } forward ref
 
 struct Y
 {
index 40328bfc6b9cc9128d278e45cd245536ab217c59..7fc269d9de0cafadd6d57acf320423cf9a52d946 100644 (file)
@@ -5,7 +5,7 @@
 
 // We'd like the enum location to be its identifier.
 
-enum thing // { dg-error "" } previous def
+enum thing // { dg-message "" } previous def
 {
   val1
 };
index a00ea1c7d2e599786f9ced8dd8a63edfead520c9..7f0bc9409e8fcf081590f043251558769f497c26 100644 (file)
@@ -4,7 +4,7 @@
 // a void parm. We need to distinguish between a parmlist of (void), and
 // some ill-formed ones.
 
-struct S; // { dg-error "" } forward ref
+struct S; // { dg-message "" } forward ref
 
 void f(S);            // ok
 void f(S s) {}        // { dg-error "" } incomplete type
index 3408a1811885da9172432d7040f1b692e87a4904..134a89c97f631f2532137eed84599cd828166058 100644 (file)
@@ -10,7 +10,7 @@
 
 struct X {int m;};
 struct Y { Y(const Y&); };
-struct Z;   // { dg-error "forward decl" } 
+struct Z;   // { dg-message "forward decl" }
 void fn1(va_list args)
 {
   int i = va_arg (args, int);
index aecbd60d97012fb891fd7d1b6c2e8b44c0cf98c0..f54d6387c291bdce578a37ef7bf3fe19b176b70c 100644 (file)
@@ -3,7 +3,7 @@
 template <class T>
 void f(T) {}                   // { dg-message "initializing" }
 
-class C;    // { dg-error "forward declaration" }
+class C;    // { dg-message "forward declaration" }
 
 void g(const C& c)
 {
index 84765142fe3e4bfdd1d2e9bc8da75944db30304f..3130d32cadb83aaa2bac928b34716c7c23d90738 100644 (file)
@@ -1,7 +1,7 @@
 // { dg-do assemble  }
 // { dg-options "-fshow-column" }
 
-struct A { // { dg-error "" } forward declaration
+struct A { // { dg-message "" } forward declaration
   friend struct B : A {                // { dg-error "invalid use of incomplete type 'struct A" "invalid" }
     int x;
   };   // { dg-error "class definition may not be declared a friend" "may not"  { target *-*-* } { 5 } }
index 4861cf301ed38b5d18bf635a7a95f2c1559bb0c4..581d6ce764d08bbb0c7776358b073be134167578 100644 (file)
@@ -17,7 +17,7 @@ public:
   }
 };
 
-class B : public A< B > // { dg-error "" } forward declaration
+class B : public A< B > // { dg-message "" } forward declaration
 {
 public:
   typedef int myT;
index 41fed6ff5028e25efdba101075015c12c61277f2..cecf0aac50fbb09d049315b649e287e7c664219d 100644 (file)
@@ -4,6 +4,6 @@
 struct A {};
 void f()
 {
-        struct A; // { dg-error "" } forward ref
+        struct A; // { dg-message "" } forward ref
         throw *(new A); // { dg-error "" } invalid use of undefined type
 }