* pt.c (print_candidates_1): Use inform instead of error.
authorJason Merrill <jason@redhat.com>
Wed, 25 Jul 2012 14:56:41 +0000 (10:56 -0400)
committerJason Merrill <jason@gcc.gnu.org>
Wed, 25 Jul 2012 14:56:41 +0000 (10:56 -0400)
From-SVN: r189849

33 files changed:
gcc/cp/ChangeLog
gcc/cp/pt.c
gcc/testsuite/g++.dg/cpp0x/inline-ns2.C
gcc/testsuite/g++.dg/cpp0x/range-for14.C
gcc/testsuite/g++.dg/lookup/ambig1.C
gcc/testsuite/g++.dg/lookup/ambig2.C
gcc/testsuite/g++.dg/lookup/ambig3.C
gcc/testsuite/g++.dg/lookup/ambig4.C
gcc/testsuite/g++.dg/lookup/ambig5.C
gcc/testsuite/g++.dg/lookup/crash3.C
gcc/testsuite/g++.dg/lookup/strong-using-2.C
gcc/testsuite/g++.dg/lookup/using16.C
gcc/testsuite/g++.dg/lookup/using17.C
gcc/testsuite/g++.dg/lookup/using18.C
gcc/testsuite/g++.dg/lookup/using20.C
gcc/testsuite/g++.dg/parse/ambig4.C
gcc/testsuite/g++.dg/parse/ambig6.C
gcc/testsuite/g++.dg/parse/crash22.C
gcc/testsuite/g++.dg/parse/crash53.C
gcc/testsuite/g++.dg/parse/non-dependent2.C
gcc/testsuite/g++.dg/template/crash92.C
gcc/testsuite/g++.dg/template/injected1.C
gcc/testsuite/g++.dg/template/overload10.C
gcc/testsuite/g++.old-deja/g++.bugs/900519_13.C
gcc/testsuite/g++.old-deja/g++.jason/overload20.C
gcc/testsuite/g++.old-deja/g++.martin/ambig1.C
gcc/testsuite/g++.old-deja/g++.mike/pmf3.C
gcc/testsuite/g++.old-deja/g++.oliva/overload1.C
gcc/testsuite/g++.old-deja/g++.other/ambig1.C
gcc/testsuite/g++.old-deja/g++.other/lineno2.C
gcc/testsuite/g++.old-deja/g++.pt/crash58.C
gcc/testsuite/g++.old-deja/g++.pt/koenig1.C
gcc/testsuite/g++.old-deja/g++.pt/overload5.C

index 5dd4031d8433b182a9ccab4633ded7030f9393c6..e9c6cff594037cca1182b73bf05630d90c8a8ffc 100644 (file)
@@ -1,3 +1,7 @@
+2012-07-25  Jason Merrill  <jason@redhat.com>
+
+       * pt.c (print_candidates_1): Use inform instead of error.
+
 2012-07-24  Paolo Carlini  <paolo.carlini@oracle.com>
 
        * pt.c (convert_template_argument, tsubst): Simplify fourth argument
index 532189d25e37bc4c3a9e515cf875e33d9b4095eb..07b294f36eeb9f95fcb37b4e4fcb42b83acc6022 100644 (file)
@@ -1718,19 +1718,21 @@ print_candidates_1 (tree fns, bool more, const char **str)
       }
     else
       {
+       tree cand = OVL_CURRENT (fn);
         if (!*str)
           {
             /* Pick the prefix string.  */
             if (!more && !OVL_NEXT (fns))
               {
-                error ("candidate is: %+#D", OVL_CURRENT (fn));
+                inform (DECL_SOURCE_LOCATION (cand),
+                       "candidate is: %#D", cand);
                 continue;
               }
 
             *str = _("candidates are:");
             spaces = get_spaces (*str);
           }
-        error ("%s %+#D", *str, OVL_CURRENT (fn));
+        inform (DECL_SOURCE_LOCATION (cand), "%s %#D", *str, cand);
         *str = spaces ? spaces : *str;
       }
 
index 03851725bbd2edf104d4fe39f65402ccd3d71004..17a8bf6019231e87e266eff88911dacc74771e38 100644 (file)
@@ -2,17 +2,17 @@
 
 namespace Q {
   inline namespace V1 {
-    extern int i;              // { dg-error "" }
-    extern int j;              // { dg-error "" }
-    void f();                  // { dg-error "" }
-    void g();                  // { dg-error "" }
+    extern int i;              // { dg-message "" }
+    extern int j;              // { dg-message "" }
+    void f();                  // { dg-message "" }
+    void g();                  // { dg-message "" }
   }
   inline namespace V2 {
-    extern int j;              // { dg-error "" }
-    void g();                  // { dg-error "" }
+    extern int j;              // { dg-message "" }
+    void g();                  // { dg-message "" }
   }
-  extern int i;                        // { dg-error "" }
-  void f();                    // { dg-error "" }
+  extern int i;                        // { dg-message "" }
+  void f();                    // { dg-message "" }
   void h();
 }
 namespace R {
index 26ae477d70e7f7dd9609f8c6da8a6e2359a3f1c6..438555e1344f2d1071c54d021e39fa45959faa0b 100644 (file)
@@ -59,7 +59,7 @@ void test1()
 
 struct base_begin
 {
-    int *begin(); // { dg-error "" }
+    int *begin(); // { dg-message "" }
 };
 
 struct base_end
index 1cf9ab4f0a2cc19df7c7ebb01e278a2f7cf46d58..c027428899ba85135a250d00dad404dfa18aaeea 100644 (file)
@@ -7,7 +7,7 @@
 // Bug 16889:Undetected ambiguity.
 
 struct B { 
-  int f(); // { dg-error "int B::f" "" }
+  int f(); // { dg-message "int B::f" "" }
 }; 
  
 struct B1 : virtual B {}; 
index 4d423d1706978a9d75ae4aa77effcd36c61301fe..505eda60d556ce33c85a0be5eec18edf5f1a9955 100644 (file)
@@ -7,7 +7,7 @@
 // Bug 16889:Undetected ambiguity.
 
 struct B { 
-  int i; // { dg-error "int B::i" "" }
+  int i; // { dg-message "int B::i" "" }
 }; 
  
 struct B1 : virtual B {}; 
index 7a0a8377a9168b4ad7bf6f5c4f0515dae8874b76..5a3f5b94929116c8941ec2507a2ca996b5e2d90e 100644 (file)
@@ -7,7 +7,7 @@
 // Follow on from Bug 16889:Undetected ambiguity.
 
 struct B { 
-  int f(); // { dg-error "int B::f" "" }
+  int f(); // { dg-message "int B::f" "" }
 }; 
  
 struct B1 : virtual B {}; 
index 3a74f7d1c767be43952c63d60ce9aea2ccfe4815..1f3daa1e5e4442fd103f6e48a3da10e8eba4e15f 100644 (file)
@@ -4,10 +4,10 @@
 
 namespace N
 {
-  int i;            // { dg-error "i" }
+  int i;            // { dg-message "i" }
 }
 
-int i;              // { dg-error "i" }
+int i;              // { dg-message "i" }
 
 using namespace N;
 
index cebec277910785a14018f610bf02751e2ed1f947..fb48ff3c8aca3958e4105e5bc8edba07e77e70b7 100644 (file)
@@ -4,10 +4,10 @@
 
 namespace N
 {
-  namespace M {}    // { dg-error "M" }
+  namespace M {}    // { dg-message "M" }
 }
 
-namespace M {}      // { dg-error "M" }
+namespace M {}      // { dg-message "M" }
 
 using namespace N;
 using namespace M;  // { dg-error "namespace-name|ambiguous" }
index 24a3360ba33e4be8737336f41fa2c56a565e5b31..5b58e8ed5596bb2c9b803b64cd939d93a7f266a7 100644 (file)
@@ -4,8 +4,8 @@
 
 typedef __SIZE_TYPE__ size_t; 
 
-struct A { void *operator new(size_t s){} };  // { dg-error "operator new" }
-struct B { void *operator new(size_t s){} };  // { dg-error "operator new" }
+struct A { void *operator new(size_t s){} };  // { dg-message "operator new" }
+struct B { void *operator new(size_t s){} };  // { dg-message "operator new" }
 
 struct C : A,B {}; 
 
index 38bb54c2f58d1cd22d3b46b078af61fb699635cd..d9f99a8d1288caefa0cae0d0db17c441deb57994 100644 (file)
@@ -5,12 +5,12 @@
 
 namespace foo {
   inline namespace foo_impl {
-    class T; // { dg-error "T" "" }
+    class T; // { dg-message "T" "" }
   }
 }
 namespace bar {
   inline namespace bar_impl {
-    class T; // { dg-error "T" "" }
+    class T; // { dg-message "T" "" }
   }
   using namespace foo;
 }
index a396afb973cd61d7071b05c81ef148db8d947ded..8a36504caf25f4d4c6a6bf8224607f3e9bd3138c 100644 (file)
@@ -3,12 +3,12 @@
 // { dg-do compile }
 
 namespace M {
-  struct S {}; // { dg-error "struct M::S" "candidate 1" }
+  struct S {}; // { dg-message "struct M::S" "candidate 1" }
 }
 
 namespace N {
   int S;
-  struct S {}; // { dg-error "struct N::S" "candidate 2" }
+  struct S {}; // { dg-message "struct N::S" "candidate 2" }
 }
 
 using namespace M;
index b98b21a0cda135147638718966bdb1eb93a5e51b..9019dabf5df5ce194c64082c73e04b49348138c7 100644 (file)
@@ -3,11 +3,11 @@
 // { dg-do compile }
 
 namespace M {
-  struct S {}; // { dg-error "struct M::S" "candidate 2" }
+  struct S {}; // { dg-message "struct M::S" "candidate 2" }
 }
 
 int S;
-struct S {}; // { dg-error "candidates are: struct S" "candidate 1" }
+struct S {}; // { dg-message "candidates are: struct S" "candidate 1" }
 
 using namespace M;
 
index 37557148ea6c44aa8a1e49b4f28b28087d89341d..d64fbc6e91697d8beeb2f96ef7ad14b4dabc1ac6 100644 (file)
@@ -4,12 +4,12 @@
 
 namespace N1 {
   void f ();
-  struct f; // { dg-error "" "candidate" }
+  struct f; // { dg-message "" "candidate" }
 }
 
 namespace N2 {
   void f (int);
-  struct f; // { dg-error "" "candidate" }
+  struct f; // { dg-message "" "candidate" }
 }
 
 namespace M {
index dc1d293a2ee4add147796689cb2673b5e3a70451..f1be41fea95e0b0a0ca53668c3213738d5456179 100644 (file)
@@ -2,14 +2,14 @@
 
 namespace A
 {
-  int i;                       // { dg-error "i" }
+  int i;                       // { dg-message "i" }
 }
 using namespace A;
 namespace B
 {
   namespace B2
   {
-    int i;                     // { dg-error "i" }
+    int i;                     // { dg-message "i" }
   }
   using namespace B2;
 }
index 868f07cf783eb4fc328807ff7653ca37894c1923..02e39b80f0cea246785aad3f7077fd4e5d82826a 100644 (file)
@@ -1,12 +1,12 @@
 // PR c++/20293
 
-namespace hide { // { dg-error "hide" }
+namespace hide { // { dg-message "hide" }
   int k;
 }
 
 namespace {
   int i; 
-  namespace hide { // { dg-error "hide" }
+  namespace hide { // { dg-message "hide" }
     int j; 
   }
 }
index 8f37feaea685942554392dfd100d3ffb3dca44de..0bd2302fe0057243b9dc4b7605c252a71ae3465a 100644 (file)
@@ -1,7 +1,7 @@
 // PR c++/48046
 
-namespace N1 { typedef int   T; } // { dg-error "" }
-namespace N2 { typedef float T; } // { dg-error "" }
+namespace N1 { typedef int   T; } // { dg-message "" }
+namespace N2 { typedef float T; } // { dg-message "" }
 
 int main()
 {
index eaf4d1a5c08e4f0603783c3c8fa4fcb965ef6c1d..ba8870376fa9e9fbf744a814b446ed74fd015e74 100644 (file)
@@ -4,17 +4,17 @@
 // PR 19030: ICE
 // Origin: Volker Reichelt <reichelt@gcc.gnu.org>
 
-struct A; // { dg-error "A" }
+struct A; // { dg-message "A" }
 
 namespace N
 {
-  struct A; // { dg-error "A" }
+  struct A; // { dg-message "A" }
 }
 
 using namespace N;
 
-int A::i; // { dg-error "ambiguous|declared here" "" }
-int A::i; // { dg-error "ambiguous|redefinition of" "" }
+int A::i; // { dg-message "ambiguous|declared here" "" }
+int A::i; // { dg-message "ambiguous|redefinition of" "" }
 
 namespace N
 {
index de6d412f1d1b55dec824fcff472371603b67c4d1..c19feafc1896d6f2b24808af395c351d6ec8c5e6 100644 (file)
@@ -1,9 +1,9 @@
 // PR c++/35112
 
-namespace X { struct A; }  // { dg-error "struct X::A" }
-namespace Y { struct A; }  // { dg-error "struct Y::A" }
-namespace Z { struct A; }  // { dg-error "struct Z::A" }
-namespace W { struct A; }  // { dg-error "struct W::A" }
+namespace X { struct A; }  // { dg-message "struct X::A" }
+namespace Y { struct A; }  // { dg-message "struct Y::A" }
+namespace Z { struct A; }  // { dg-message "struct Z::A" }
+namespace W { struct A; }  // { dg-message "struct W::A" }
 
 using namespace X;
 using namespace Y;
index fee66d495a46494ad22a5f171b99e73b538f9191..a2ae81d7f8d02996df7337511a24091527a7617e 100644 (file)
@@ -8,14 +8,14 @@
 template <class T>
 struct Foo {
   int j; // we never see this one.
-  int k; // { dg-error "Foo" "" }
+  int k; // { dg-message "Foo" "" }
   
 };
 
 struct Baz 
 {
   int j;
-  int k; // { dg-error "candidates" "" }
+  int k; // { dg-message "candidates" "" }
   
 };
 
index c0219c4a3e89c6cdecdc0de1183d1a85c6dd32ed..1153ef61934faa3d26165c5ef0d59ea47c177976 100644 (file)
@@ -1,7 +1,7 @@
 // PR c++/42055
 
-template<typename T> void foo(T, T); // { dg-error "candidates|template" }
+template<typename T> void foo(T, T); // { dg-message "candidates|template" }
 
-template<typename T> void foo(T, int); // { dg-error "template" }
+template<typename T> void foo(T, int); // { dg-message "template" }
 
 template void foo(int, int); // { dg-error "ambiguous template specialization" }
index 58b86569387af15d2c7ca2913c23862ce33805cd..58ec3cba6a3916dd88d2e5a9ffd6d85f30b6dea5 100644 (file)
@@ -1,6 +1,6 @@
 // PR c++/13950, DR 176
 
-template <class T> struct Base { }; // { dg-error "" } candidate
+template <class T> struct Base { }; // { dg-message "" } candidate
 
 struct D1: Base<void>
 {
index 088b9d291cbceedff921a74f3e7cf3ec317f9bfa..84078bd87250c5ceb7e06a91ee6f0a770c34e7c4 100644 (file)
@@ -1,6 +1,6 @@
 // PR c++40342
 
-template <typename T1, typename T2> int f(T1 *, const T2 *); // { dg-error "" }
-template <typename T1, typename T2> int f(const T1 *, T2 *); // { dg-error "" }
+template <typename T1, typename T2> int f(T1 *, const T2 *); // { dg-message "" }
+template <typename T1, typename T2> int f(const T1 *, T2 *); // { dg-message "" }
 
 int (*p)(const int *, const int *) = f; // { dg-error "ambiguous" }
index 9d4edc60a245a5c52e816bc5c07c822c0bde8b2c..6b8260d418ba408c97d17e25ed406300185bf1f1 100644 (file)
 // keywords: inheritance, ambiguity resolution, members
 
 struct base_0 {
-  enum { base_member }; // { dg-error "" } candidate (26, 30)
+  enum { base_member }; // { dg-message "" } candidate (26, 30)
 };
 
 struct base_1 {
-  int base_member;      // { dg-error "" } candidate (26, 34)
+  int base_member;      // { dg-message "" } candidate (26, 34)
 };
 
 struct base_2 {
-  int base_member ();   // { dg-error "" } candidate (30, 34)
+  int base_member ();   // { dg-message "" } candidate (30, 34)
 };
 
 struct derived_0 : public base_0, public base_1 {
index f5db6a20fce618a3ed71c375066f5259ccef9504..ef8504b2affd7d6c8dbb31baa93ad683b031a108 100644 (file)
@@ -4,8 +4,8 @@
 void f (char *);
 void f (int);
 struct A {
-  void f ();                   // { dg-error "" } candidate
-  void f (int);                        // { dg-error "" } candidate
+  void f ();                   // { dg-message "" } candidate
+  void f (int);                        // { dg-message "" } candidate
   void g () {
     void (*p)(char *) = f;     // { dg-error "" } no matching function in scope
   }
index 1ccc217a4772d6a583e8c623eef1579aa9f69d2f..f2a7f1e2f4bcf42e30c69076e8718e5c37afae65 100644 (file)
@@ -2,12 +2,12 @@
 //Based on a report by Bill Currie <bcurrie@tssc.co.nz>
 struct foo {
   protected:
-    int x;        // { dg-error "" } candidate
+    int x;        // { dg-message "" } candidate
 };
 
 struct bar {
   public:
-    int x();      // { dg-error "" } candidate
+    int x();      // { dg-message "" } candidate
 };
 
 struct foobar: public foo, public bar {
index 8dee9278f622519e41e9182c5a64aa5bfb730b0a..5ee1e343a2ac97b35156ad902e63a6732972421d 100644 (file)
@@ -6,9 +6,9 @@ struct Fooey {
   void h(double dx);
 };
 
-void Fooey::f(char*) { }       // { dg-error "" } candidate
-void Fooey::f(int) { }         // { dg-error "" } candidate
-void Fooey::f(float) { }       // { dg-error "" } candidate
+void Fooey::f(char*) { }       // { dg-message "" } candidate
+void Fooey::f(int) { }         // { dg-message "" } candidate
+void Fooey::f(float) { }       // { dg-message "" } candidate
 void Fooey::h(double zahl) { }
 
 int main() {
index 75c8723c70f06d8dc3e0698109228cc15132b3a3..69a4fa5dcb79f09c1199017e34cd34200d8e67c5 100644 (file)
@@ -6,8 +6,8 @@
 // Based on bug report by JDonner <jdonner@schedsys.com>
 
 struct foo {
-  static int bar(); // { dg-error "foo::bar" }
-  void bar(int); // { dg-error "foo::bar" }
+  static int bar(); // { dg-message "foo::bar" }
+  void bar(int); // { dg-message "foo::bar" }
 };
 
 /* gcc emits a hard error without -pedantic, and a warning with
index f3fe0a8dd8ee4c8a3c9b631602ff6728e803a346..b18c5290d6e90ebd0a90364f7ef5efc35efc8112 100644 (file)
@@ -1,15 +1,15 @@
 // { dg-do assemble  }
 
 struct A {
-  int operator ++(); // { dg-error "" } candidates
-  void operator ()(); // { dg-error "" } candidates
-  void operator delete(void*); // { dg-error "" } candidates
+  int operator ++(); // { dg-message "" } candidates
+  void operator ()(); // { dg-message "" } candidates
+  void operator delete(void*); // { dg-message "" } candidates
 };
 
 struct B {
-  int operator ++(int); // { dg-error "" } candidates
-  void operator ()(); // { dg-error "" } candidates
-  void operator delete(void*); // { dg-error "" } candidates
+  int operator ++(int); // { dg-message "" } candidates
+  void operator ()(); // { dg-message "" } candidates
+  void operator delete(void*); // { dg-message "" } candidates
   void f();
 };
 
index 3735d6481ee272740fedcbe8de771a8789c7206f..d6aca8b9cfd084525eed7c74df7de7fdcea48cb5 100644 (file)
@@ -2,9 +2,9 @@
 // Submitted by Nathan Sidwell <nathan@acm.org>
 // Bug: g++ wasn't listing candidates for a failed conversion.
 
-void f(int, double);           // { dg-error "" } candidate
-void f(double, int);           // { dg-error "" } candidate
-void f(int);                   // { dg-error "" } candidate
+void f(int, double);           // { dg-message "" } candidate
+void f(double, int);           // { dg-message "" } candidate
+void f(int);                   // { dg-message "" } candidate
 
 int
 main ()
index 0ce3d81723d5465fca6579e1b01115cb01c84f3f..f0b609a91837d7dc953dc455cd3e180954e4b799 100644 (file)
@@ -6,9 +6,9 @@
 // bug 147. We ICE'd on an unprocessed LOOKUP_EXPR during tsubsting
 
 namespace EManip {
-    template <class T> void do_assign(T* d);  // { dg-error "" } candidate
+    template <class T> void do_assign(T* d);  // { dg-message "" } candidate
 }
-template <class T> void do_assign(T* d);    // { dg-error "" } candidate
+template <class T> void do_assign(T* d);    // { dg-message "" } candidate
 
 template <class T>
 struct MatrixC
index 03b58587c5c99b1a61bb0a039ff40693b659f172..c58bd6eab191d2aa32b74e2114655bca2f5107a7 100644 (file)
@@ -12,7 +12,7 @@ struct A {
 template <int s>
 static void g();
 template <int s>
-void f();         // { dg-error "" } candiate
+void f();         // { dg-message "" } candiate
 
 static void f_plus ()
   {
index 1bb2d448f988cabbb5999dbb9ce7fbd9cfe92e0a..50febb2e7aa136f8781027079b63fbf06d056ef9 100644 (file)
@@ -1,6 +1,6 @@
 // { dg-do assemble  }
 
-template <class T> void foo(); // { dg-error "" } candidate
+template <class T> void foo(); // { dg-message "" } candidate
 
 void (*bar)() = foo<void>;
 void (*baz)() = foo; // { dg-error "" } can't deduce T