decl.c (cp_finish_decl): Improve error location.
authorPaolo Carlini <paolo@gcc.gnu.org>
Sat, 12 Jan 2019 21:59:50 +0000 (21:59 +0000)
committerPaolo Carlini <paolo@gcc.gnu.org>
Sat, 12 Jan 2019 21:59:50 +0000 (21:59 +0000)
/cp
2019-01-12  Paolo Carlini  <paolo.carlini@oracle.com>

* decl.c (cp_finish_decl): Improve error location.
* decl2.c (grokfield): Likewise, improve two locations.

/testsuite
2019-01-12  Paolo Carlini  <paolo.carlini@oracle.com>

* g++.dg/cpp0x/pr62101.C: Test locations too.
* g++.dg/inherit/pure1.C: Likewise.

From-SVN: r267888

gcc/testsuite/g++.dg/inherit/pure1.C

index 364369b85e19fdcdd0f009459ac04f658fbb5857..fd81ff033c7f3cfc761fdd780ac8e6c84851aa84 100644 (file)
@@ -2,18 +2,19 @@
 // Origin: Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
 // { dg-do compile }
 
-void foo0() = 0;                   // { dg-error "like a variable" }
+void foo0() = 0;                   // { dg-error "6:function .void foo0\\(\\). is initialized like a variable" }
 virtual void foo1() = 0;           // { dg-error "1:'virtual' outside class" }
-// { dg-error "like a variable" "" { target *-*-* } .-1 }
+// { dg-error "14:function .void foo1\\(\\). is initialized like a variable" "" { target *-*-* } .-1 }
 struct A
 {
-  void foo2() = 0;                 // { dg-error "non-virtual" }
-  static void foo3() = 0;          // { dg-error "static member" }
+  void foo2() = 0;                 // { dg-error "8:initializer specified for non-virtual method" }
+  static void foo3() = 0;          // { dg-error "15:initializer specified for static member function" }
   virtual static void foo4() = 0;  // { dg-error "both 'virtual' and 'static'" }
   virtual void foo5() = 0;         // { dg-error "base class" }
 };
 
 struct B : A
 {
-  static void foo5() = 0;          // { dg-error "static member|declared" }
+  static void foo5() = 0;          // { dg-error "15:initializer specified for static member function" }
+// { dg-error "declared" "" { target *-*-* } .-1 }  
 };