===================================================================
@@ -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;
===================================================================
@@ -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 }
===================================================================
@@ -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;
===================================================================
@@ -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;
===================================================================
@@ -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 }