Hi,

noticed these error messages. Tested x86_64-linux.

Thanks,
Paolo.

///////////////
/cp
2014-07-01  Paolo Carlini  <paolo.carl...@oracle.com>

        * pt.c (convert_template_argument): Use inform instead of error in
        three places.

/testsuite
2014-07-01  Paolo Carlini  <paolo.carl...@oracle.com>

        * g++.dg/cpp0x/variadic-ex10.C: Adjust for inform instead of error.
        * g++.dg/cpp0x/variadic-ex14.C: Likewise.
        * g++.dg/parse/error11.C: Likewise.
        * g++.old-deja/g++.brendan/template17.C: Likewise.
Index: cp/pt.c
===================================================================
--- cp/pt.c     (revision 212194)
+++ cp/pt.c     (working copy)
@@ -6468,13 +6468,16 @@ convert_template_argument (tree parm,
                     "parameter list for %qD",
                     i + 1, in_decl);
              if (is_type)
-               error ("  expected a constant of type %qT, got %qT",
-                      TREE_TYPE (parm),
-                      (DECL_P (arg) ? DECL_NAME (arg) : orig_arg));
+               inform (input_location,
+                       "  expected a constant of type %qT, got %qT",
+                       TREE_TYPE (parm),
+                       (DECL_P (arg) ? DECL_NAME (arg) : orig_arg));
              else if (requires_tmpl_type)
-               error ("  expected a class template, got %qE", orig_arg);
+               inform (input_location,
+                       "  expected a class template, got %qE", orig_arg);
              else
-               error ("  expected a type, got %qE", orig_arg);
+               inform (input_location,
+                       "  expected a type, got %qE", orig_arg);
            }
        }
       return error_mark_node;
@@ -6487,9 +6490,11 @@ convert_template_argument (tree parm,
                 "parameter list for %qD",
                 i + 1, in_decl);
          if (is_tmpl_type)
-           error ("  expected a type, got %qT", DECL_NAME (arg));
+           inform (input_location,
+                   "  expected a type, got %qT", DECL_NAME (arg));
          else
-           error ("  expected a class template, got %qT", orig_arg);
+           inform (input_location,
+                   "  expected a class template, got %qT", orig_arg);
        }
       return error_mark_node;
     }
@@ -6537,8 +6542,9 @@ convert_template_argument (tree parm,
                      error ("type/value mismatch at argument %d in "
                             "template parameter list for %qD",
                             i + 1, in_decl);
-                     error ("  expected a template of type %qD, got %qT",
-                            parm, orig_arg);
+                     inform (input_location,
+                             "  expected a template of type %qD, got %qT",
+                             parm, orig_arg);
                    }
 
                  val = error_mark_node;
Index: testsuite/g++.dg/cpp0x/variadic-ex10.C
===================================================================
--- testsuite/g++.dg/cpp0x/variadic-ex10.C      (revision 212194)
+++ testsuite/g++.dg/cpp0x/variadic-ex10.C      (working copy)
@@ -5,5 +5,5 @@ Tuple<> t0; // Types contains no arguments
 Tuple<int> t1; // Types contains one argument: int
 Tuple<int, float> t2; // Types contains two arguments: int and float
 Tuple<0> error; // { dg-error "mismatch" "mismatch" }
-// { dg-error "expected a type" "expected a type" { target *-*-* } 7 }
+// { dg-message "expected a type" "expected a type" { target *-*-* } 7 }
 // { dg-error "in declaration" "in declaration" { target *-*-* } 7 }
Index: testsuite/g++.dg/cpp0x/variadic-ex14.C
===================================================================
--- testsuite/g++.dg/cpp0x/variadic-ex14.C      (revision 212194)
+++ testsuite/g++.dg/cpp0x/variadic-ex14.C      (working copy)
@@ -9,10 +9,10 @@ template<template<class...> class Q> class Y { /*
 
 X<A> xA; // okay
 X<B> xB; // { dg-error "mismatch" "mismatch" }
-// { dg-error "expected a template" "expected" { target *-*-* } 11 }
+// { dg-message "expected a template" "expected" { target *-*-* } 11 }
 // { dg-error "invalid type" "invalid" { target *-*-* } 11 }
 X<C> xC; // { dg-error "mismatch" "mismatch" }
-// { dg-error "expected a template" "expected" { target *-*-* } 14 }
+// { dg-message "expected a template" "expected" { target *-*-* } 14 }
 // { dg-error "invalid type" "invalid" { target *-*-* } 14 }
 Y<A> yA;
 Y<B> yB;
Index: testsuite/g++.dg/parse/error11.C
===================================================================
--- testsuite/g++.dg/parse/error11.C    (revision 212194)
+++ testsuite/g++.dg/parse/error11.C    (working copy)
@@ -33,7 +33,7 @@ template <int N> struct Foo2 {};
 template struct Foo2<::B>;  // { dg-error "21:'<::' cannot begin" "begin" { 
target { ! c++11 } } }
 // { dg-message "21:'<:' is an alternate" "alt" { target { ! c++11 } } 33 }
 // { dg-message "25:type/value mismatch" "mismatch" { target *-*-* } 33 }
-// { dg-error "25:expected a constant" "const" { target *-*-* } 33 }
+// { dg-message "25:expected a constant" "const" { target *-*-* } 33 }
 
 int value = 0;
 
Index: testsuite/g++.old-deja/g++.brendan/template17.C
===================================================================
--- testsuite/g++.old-deja/g++.brendan/template17.C     (revision 212194)
+++ testsuite/g++.old-deja/g++.brendan/template17.C     (working copy)
@@ -9,7 +9,7 @@ class NDAMName {
 };
 
 const Regex NDAMName<'L'>::pattern("^[Ll](.*)$",   1);// { dg-error 
"type/value mismatch" "mismatch" }
-// { dg-error "expected a type" "expected" { target *-*-* } 11 }
+// { dg-message "expected a type" "expected" { target *-*-* } 11 }
 // { dg-warning "deprecated" "depr" { target *-*-* } 11 }
 unsigned NDAMName<'L'>::sequence_number = 0;// { dg-error "type/value 
mismatch" "mismatch" }
-// { dg-error "expected a type" "exp" { target *-*-* } 14 }
+// { dg-message "expected a type" "exp" { target *-*-* } 14 }

Reply via email to