diff options
Diffstat (limited to 'clang/test')
21 files changed, 49 insertions, 49 deletions
diff --git a/clang/test/Analysis/analyzer-stats.c b/clang/test/Analysis/analyzer-stats.c index 63073b7e40b..a0a50cbc934 100644 --- a/clang/test/Analysis/analyzer-stats.c +++ b/clang/test/Analysis/analyzer-stats.c @@ -2,7 +2,7 @@ int foo(); -int test() { // expected-warning-re{{test -> Total CFGBlocks: [0-9]+ \| Unreachable CFGBlocks: 0 \| Exhausted Block: no \| Empty WorkList: yes}} +int test() { // expected-warning-re{{test -> Total CFGBlocks: {{[0-9]+}} | Unreachable CFGBlocks: 0 | Exhausted Block: no | Empty WorkList: yes}} int a = 1; a = 34 / 12; diff --git a/clang/test/CXX/dcl.dcl/dcl.spec/dcl.constexpr/p1.cpp b/clang/test/CXX/dcl.dcl/dcl.spec/dcl.constexpr/p1.cpp index cf422972a28..7aa3b2f8acd 100644 --- a/clang/test/CXX/dcl.dcl/dcl.spec/dcl.constexpr/p1.cpp +++ b/clang/test/CXX/dcl.dcl/dcl.spec/dcl.constexpr/p1.cpp @@ -27,7 +27,7 @@ void f2(constexpr int i) {} // expected-error {{function parameter cannot be con struct s2 { constexpr int mi1; // expected-error {{non-static data member cannot be constexpr; did you intend to make it const?}} static constexpr int mi2; // expected-error {{requires an initializer}} - mutable constexpr int mi3 = 3; // expected-error-re {{non-static data member cannot be constexpr$}} expected-error {{'mutable' and 'const' cannot be mixed}} + mutable constexpr int mi3 = 3; // expected-error-re {{non-static data member cannot be constexpr{{$}}}} expected-error {{'mutable' and 'const' cannot be mixed}} }; // typedef typedef constexpr int CI; // expected-error {{typedef cannot be constexpr}} diff --git a/clang/test/CXX/drs/dr14xx.cpp b/clang/test/CXX/drs/dr14xx.cpp index 48487b52351..8de1b8d623a 100644 --- a/clang/test/CXX/drs/dr14xx.cpp +++ b/clang/test/CXX/drs/dr14xx.cpp @@ -84,7 +84,7 @@ namespace dr1460 { // dr1460: 3.5 #if __cplusplus > 201103L template<typename T> constexpr bool check() { - T t; // expected-note-re 2{{non-constexpr constructor '[BE]'}} + T t; // expected-note-re 2{{non-constexpr constructor '{{[BE]}}'}} return true; } static_assert(check<A>(), ""); diff --git a/clang/test/CXX/special/class.copy/implicit-move.cpp b/clang/test/CXX/special/class.copy/implicit-move.cpp index 23ecf2e7d95..a10d139fe3c 100644 --- a/clang/test/CXX/special/class.copy/implicit-move.cpp +++ b/clang/test/CXX/special/class.copy/implicit-move.cpp @@ -258,8 +258,8 @@ namespace DR1402 { template<typename T> struct F : - E<T, 0>, // expected-note-re 2{{'[BD]' is a virtual base class of base class 'E<}} - E<T, 1> {}; // expected-note-re 2{{'[BD]' is a virtual base class of base class 'E<}} + E<T, 0>, // expected-note-re 2{{'{{[BD]}}' is a virtual base class of base class 'E<}} + E<T, 1> {}; // expected-note-re 2{{'{{[BD]}}' is a virtual base class of base class 'E<}} template<typename T> struct G : E<T, 0, true>, E<T, 0> {}; @@ -272,11 +272,11 @@ namespace DR1402 { template<typename T> struct J : - E<T, 0>, // expected-note-re 2{{'[BD]' is a virtual base class of base class 'E<}} - virtual T {}; // expected-note-re 2{{virtual base class '[BD]' declared here}} + E<T, 0>, // expected-note-re 2{{'{{[BD]}}' is a virtual base class of base class 'E<}} + virtual T {}; // expected-note-re 2{{virtual base class '{{[BD]}}' declared here}} template<typename T> void move(T t) { t = static_cast<T&&>(t); } - // expected-warning-re@-1 4{{defaulted move assignment operator of .* will move assign virtual base class '[BD]' multiple times}} + // expected-warning-re@-1 4{{defaulted move assignment operator of {{.*}} will move assign virtual base class '{{[BD]}}' multiple times}} template void move(F<A>); template void move(F<B>); // expected-note {{in instantiation of}} template void move(F<C>); diff --git a/clang/test/Lexer/hexfloat.cpp b/clang/test/Lexer/hexfloat.cpp index 9bd8f830f03..bd53d4a89e5 100644 --- a/clang/test/Lexer/hexfloat.cpp +++ b/clang/test/Lexer/hexfloat.cpp @@ -12,4 +12,4 @@ double h = 0x1.p2; // expected-warning{{hexadecimal floating constants are a C99 double i = 0p+3; // expected-error{{invalid suffix 'p' on integer constant}} #define PREFIX(x) foo ## x double foo0p = 1, j = PREFIX(0p+3); // ok -double k = 0x42_amp+3; // expected-error-re{{invalid suffix '_amp' on integer constant|no matching literal operator for call to 'operator "" _amp'}} +double k = 0x42_amp+3; // expected-error-re{{{{invalid suffix '_amp' on integer constant|no matching literal operator for call to 'operator "" _amp'}}}} diff --git a/clang/test/Misc/verify.c b/clang/test/Misc/verify.c index 85b034e9572..9fe83e122e1 100644 --- a/clang/test/Misc/verify.c +++ b/clang/test/Misc/verify.c @@ -7,8 +7,8 @@ struct s s1; // expected-error {{tentative definition has type 'struct s' that i struct s s2; // expected-error {{tentative definition has type}} // regex matching -struct s r1; // expected-error-re {{tentative definition has type 'struct s' that is never completed}} -struct s r2; // expected-error-re {{tentative definition has type '.*[[:space:]]*.*' that is never completed}} -struct s r3; // expected-error-re {{tentative definition has type '(.*)[[:space:]]*(.*)' that is never completed}} -struct s r4; // expected-error-re {{^tentative}} -struct s r5; // expected-error-re {{completed$}} +struct s r1; // expected-error {{tentative definition has type 'struct s' that is never completed}} +struct s r2; // expected-error-re {{tentative definition has type '{{.*[[:space:]]*.*}}' that is never completed}} +struct s r3; // expected-error-re {{tentative definition has type '{{(.*)[[:space:]]*(.*)}}' that is never completed}} +struct s r4; // expected-error-re {{{{^}}tentative}} +struct s r5; // expected-error-re {{completed{{$}}}} diff --git a/clang/test/Parser/attributes.mm b/clang/test/Parser/attributes.mm index d92e3d35cfb..024606bed3a 100644 --- a/clang/test/Parser/attributes.mm +++ b/clang/test/Parser/attributes.mm @@ -14,11 +14,11 @@ EXP class C2 {}; // expected-warning {{attribute 'visibility' is ignored, place @interface EXP I @end // expected-error {{postfix attributes are not allowed on Objective-C directives, place them in front of '@interface'}} EXP @interface I2 @end -@implementation EXP I @end // expected-error-re {{postfix attributes are not allowed on Objective-C directives$}} +@implementation EXP I @end // expected-error-re {{postfix attributes are not allowed on Objective-C directives{{$}}}} // FIXME: Prefix attribute recovery skips until ';' EXP @implementation I2 @end; // expected-error {{prefix attribute must be followed by an interface or protocol}} -@class EXP OC; // expected-error-re {{postfix attributes are not allowed on Objective-C directives$}} +@class EXP OC; // expected-error-re {{postfix attributes are not allowed on Objective-C directives{{$}}}} EXP @class OC2; // expected-error {{prefix attribute must be followed by an interface or protocol}} @protocol EXP P @end // expected-error {{postfix attributes are not allowed on Objective-C directives, place them in front of '@protocol'}} diff --git a/clang/test/Sema/format-strings-scanf.c b/clang/test/Sema/format-strings-scanf.c index d66bed5ffbd..381447c84a6 100644 --- a/clang/test/Sema/format-strings-scanf.c +++ b/clang/test/Sema/format-strings-scanf.c @@ -107,9 +107,9 @@ void test_alloc_extension(char **sp, wchar_t **lsp, float *fp) { // Test argument type check for the 'm' length modifier. scanf("%ms", fp); // expected-warning{{format specifies type 'char **' but the argument has type 'float *'}} - scanf("%mS", fp); // expected-warning-re{{format specifies type 'wchar_t \*\*' \(aka '[^']+'\) but the argument has type 'float \*'}} + scanf("%mS", fp); // expected-warning-re{{format specifies type 'wchar_t **' (aka '{{[^']+}}') but the argument has type 'float *'}} scanf("%mc", fp); // expected-warning{{format specifies type 'char **' but the argument has type 'float *'}} - scanf("%mC", fp); // expected-warning-re{{format specifies type 'wchar_t \*\*' \(aka '[^']+'\) but the argument has type 'float \*'}} + scanf("%mC", fp); // expected-warning-re{{format specifies type 'wchar_t **' (aka '{{[^']+}}') but the argument has type 'float *'}} scanf("%m[abc]", fp); // expected-warning{{format specifies type 'char **' but the argument has type 'float *'}} } diff --git a/clang/test/Sema/ms-wchar.c b/clang/test/Sema/ms-wchar.c index febaf283b33..ead3d974d34 100644 --- a/clang/test/Sema/ms-wchar.c +++ b/clang/test/Sema/ms-wchar.c @@ -12,7 +12,7 @@ __wchar_t g = L'a'; // expected-note {{previous}} unsigned short g; // expected-error {{redefinition of 'g' with a different type: 'unsigned short' vs '__wchar_t'}} // The type of a wide string literal is actually not __wchar_t. -__wchar_t s[] = L"Hello world!"; // expected-error-re {{array initializer must be an initializer list$}} +__wchar_t s[] = L"Hello world!"; // expected-error-re {{array initializer must be an initializer list{{$}}}} // Do not suggest initializing with a string here, because it would not work. -__wchar_t t[] = 1; // expected-error-re {{array initializer must be an initializer list$}} +__wchar_t t[] = 1; // expected-error-re {{array initializer must be an initializer list{{$}}}} diff --git a/clang/test/Sema/thread-specifier.c b/clang/test/Sema/thread-specifier.c index bf1ce9e26e4..39243d1a760 100644 --- a/clang/test/Sema/thread-specifier.c +++ b/clang/test/Sema/thread-specifier.c @@ -21,7 +21,7 @@ __thread static int t3; __thread __private_extern__ int t4; struct t5 { __thread int x; }; #ifdef __cplusplus -// expected-error-re@-2 {{'(__thread|_Thread_local|thread_local)' is only allowed on variable declarations}} +// expected-error-re@-2 {{'{{__thread|_Thread_local|thread_local}}' is only allowed on variable declarations}} #else // FIXME: The 'is only allowed on variable declarations' diagnostic is better here. // expected-error@-5 {{type name does not allow storage class to be specified}} @@ -47,17 +47,17 @@ int f(__thread int t7) { // expected-error {{' is only allowed on variable decla static __thread int t10; __thread __private_extern__ int t11; #if __cplusplus < 201103L - __thread auto int t12a; // expected-error-re {{cannot combine with previous '(__thread|_Thread_local)' declaration specifier}} + __thread auto int t12a; // expected-error-re {{cannot combine with previous '{{__thread|_Thread_local}}' declaration specifier}} auto __thread int t12b; // expected-error {{cannot combine with previous 'auto' declaration specifier}} #elif !defined(CXX11) - __thread auto t12a = 0; // expected-error-re {{'_Thread_local' variables must have global storage}} - auto __thread t12b = 0; // expected-error-re {{'_Thread_local' variables must have global storage}} + __thread auto t12a = 0; // expected-error {{'_Thread_local' variables must have global storage}} + auto __thread t12b = 0; // expected-error {{'_Thread_local' variables must have global storage}} #endif - __thread register int t13a; // expected-error-re {{cannot combine with previous '(__thread|_Thread_local|thread_local)' declaration specifier}} + __thread register int t13a; // expected-error-re {{cannot combine with previous '{{__thread|_Thread_local|thread_local}}' declaration specifier}} register __thread int t13b; // expected-error {{cannot combine with previous 'register' declaration specifier}} } -__thread typedef int t14; // expected-error-re {{cannot combine with previous '(__thread|_Thread_local|thread_local)' declaration specifier}} +__thread typedef int t14; // expected-error-re {{cannot combine with previous '{{__thread|_Thread_local|thread_local}}' declaration specifier}} __thread int t15; // expected-note {{previous declaration is here}} extern int t15; // expected-error {{non-thread-local declaration of 't15' follows thread-local declaration}} extern int t16; // expected-note {{previous declaration is here}} diff --git a/clang/test/SemaCXX/addr-of-overloaded-function.cpp b/clang/test/SemaCXX/addr-of-overloaded-function.cpp index 230a1eb994e..12cc4ed9698 100644 --- a/clang/test/SemaCXX/addr-of-overloaded-function.cpp +++ b/clang/test/SemaCXX/addr-of-overloaded-function.cpp @@ -84,7 +84,7 @@ struct C { void h() { // Do not suggest '()' since an int argument is required - q1<int>; // expected-error-re{{reference to non-static member function must be called$}} + q1<int>; // expected-error-re{{reference to non-static member function must be called{{$}}}} // Suggest '()' since there's a default value for the only argument & the // type argument is already provided q2<int>; // expected-error{{reference to non-static member function must be called; did you mean to call it with no arguments?}} @@ -92,7 +92,7 @@ struct C { // already provided q3<int>; // expected-error{{reference to non-static member function must be called; did you mean to call it with no arguments?}} // Do not suggest '()' since another type argument is required - q4<int>; // expected-error-re{{reference to non-static member function must be called$}} + q4<int>; // expected-error-re{{reference to non-static member function must be called{{$}}}} // Suggest '()' since the type parameter has a default value q5; // expected-error{{reference to non-static member function must be called; did you mean to call it with no arguments?}} } diff --git a/clang/test/SemaCXX/member-expr.cpp b/clang/test/SemaCXX/member-expr.cpp index 239aecff815..e0955aeb9ce 100644 --- a/clang/test/SemaCXX/member-expr.cpp +++ b/clang/test/SemaCXX/member-expr.cpp @@ -193,7 +193,7 @@ namespace PR15045 { }; template <class T> void call_func(T t) { - t->func(); // expected-error-re 2 {{member reference type 'PR15045::bar' is not a pointer$}} \ + t->func(); // expected-error-re 2 {{member reference type 'PR15045::bar' is not a pointer{{$}}}} \ // expected-note {{did you mean to use '.' instead?}} } @@ -207,7 +207,7 @@ namespace PR15045 { // Make sure a fixit isn't given in the case that the '->' isn't actually // the problem (the problem is with the return value of an operator->). - f->func(); // expected-error-re {{member reference type 'PR15045::bar' is not a pointer$}} + f->func(); // expected-error-re {{member reference type 'PR15045::bar' is not a pointer{{$}}}} call_func(e); // expected-note {{in instantiation of function template specialization 'PR15045::call_func<PR15045::bar>' requested here}} diff --git a/clang/test/SemaCXX/nested-name-spec.cpp b/clang/test/SemaCXX/nested-name-spec.cpp index f1f9bbb507f..a0bac059a20 100644 --- a/clang/test/SemaCXX/nested-name-spec.cpp +++ b/clang/test/SemaCXX/nested-name-spec.cpp @@ -143,7 +143,7 @@ namespace A { void g(int&); // expected-note{{type of 1st parameter of member declaration does not match definition ('int &' vs 'const int &')}} } -void A::f() {} // expected-error-re{{out-of-line definition of 'f' does not match any declaration in namespace 'A'$}} +void A::f() {} // expected-error-re{{out-of-line definition of 'f' does not match any declaration in namespace 'A'{{$}}}} void A::g(const int&) { } // expected-error{{out-of-line definition of 'g' does not match any declaration in namespace 'A'}} diff --git a/clang/test/SemaCXX/operator-arrow-depth.cpp b/clang/test/SemaCXX/operator-arrow-depth.cpp index 3e2ba8e4522..769dae0d246 100644 --- a/clang/test/SemaCXX/operator-arrow-depth.cpp +++ b/clang/test/SemaCXX/operator-arrow-depth.cpp @@ -9,7 +9,7 @@ template<int N> struct A { template<int N> struct B { A<N-1> operator->(); // expected-note +{{'operator->' declared here produces an object of type 'A<}} #if MAX != 2 - // expected-note-re@-2 {{(skipping (120|2) 'operator->'s in backtrace)}} + // expected-note-re@-2 {{(skipping {{120|2}} 'operator->'s in backtrace)}} #endif }; @@ -22,5 +22,5 @@ A<MAX/2> good; int n = good->n; B<MAX/2 + 1> bad; -int m = bad->n; // expected-error-re {{use of 'operator->' on type 'B<(2|10|128) / 2 \+ 1>' would invoke a sequence of more than (2|10|128) 'operator->' calls}} +int m = bad->n; // expected-error-re {{use of 'operator->' on type 'B<{{2|10|128}} / 2 + 1>' would invoke a sequence of more than {{2|10|128}} 'operator->' calls}} // expected-note@-1 {{use -foperator-arrow-depth=N to increase 'operator->' limit}} diff --git a/clang/test/SemaCXX/pr13394-crash-on-invalid.cpp b/clang/test/SemaCXX/pr13394-crash-on-invalid.cpp index 841e3c20340..42b6508c713 100644 --- a/clang/test/SemaCXX/pr13394-crash-on-invalid.cpp +++ b/clang/test/SemaCXX/pr13394-crash-on-invalid.cpp @@ -13,7 +13,7 @@ namespace gatekeeper_v1 { }; } // FIXME: Typo correction should remove the 'gatekeeper_v1::' name specifier - gatekeeper_v1::closure_t *x; // expected-error-re {{no type named 'closure_t' in namespace 'gatekeeper_v1'$}} + gatekeeper_v1::closure_t *x; // expected-error-re {{no type named 'closure_t' in namespace 'gatekeeper_v1'{{$}}}} } namespace Foo { diff --git a/clang/test/SemaCXX/qualified-id-lookup.cpp b/clang/test/SemaCXX/qualified-id-lookup.cpp index 23164fa42f3..8eef6f41827 100644 --- a/clang/test/SemaCXX/qualified-id-lookup.cpp +++ b/clang/test/SemaCXX/qualified-id-lookup.cpp @@ -94,7 +94,7 @@ namespace a { void test_a() { a::a::i = 3; // expected-error{{no member named 'i' in namespace 'a::a'; did you mean 'a::a::a::i'?}} a::a::a::i = 4; - a::a::j = 3; // expected-error-re{{no member named 'j' in namespace 'a::a'$}} + a::a::j = 3; // expected-error-re{{no member named 'j' in namespace 'a::a'{{$}}}} } struct Undef { // expected-note{{definition of 'Undef' is not complete until the closing '}'}} diff --git a/clang/test/SemaCXX/typo-correction-pt2.cpp b/clang/test/SemaCXX/typo-correction-pt2.cpp index 2da52b31f57..bb5e8f8c934 100644 --- a/clang/test/SemaCXX/typo-correction-pt2.cpp +++ b/clang/test/SemaCXX/typo-correction-pt2.cpp @@ -7,8 +7,8 @@ namespace bogus_keyword_suggestion { void test() { - status = "OK"; // expected-error-re {{use of undeclared identifier 'status'$}} - return status; // expected-error-re {{use of undeclared identifier 'status'$}} + status = "OK"; // expected-error-re {{use of undeclared identifier 'status'{{$}}}} + return status; // expected-error-re {{use of undeclared identifier 'status'{{$}}}} } } @@ -33,7 +33,7 @@ struct T { }; // should be void T::f(); void f() { - data_struct->foo(); // expected-error-re{{use of undeclared identifier 'data_struct'$}} + data_struct->foo(); // expected-error-re{{use of undeclared identifier 'data_struct'{{$}}}} } namespace PR12287 { @@ -116,9 +116,9 @@ public: void testAccess() { Figure obj; switch (obj.type()) { // expected-warning {{enumeration values 'SQUARE', 'TRIANGLE', and 'CIRCLE' not handled in switch}} - case SQUARE: // expected-error-re {{use of undeclared identifier 'SQUARE'$}} - case TRIANGLE: // expected-error-re {{use of undeclared identifier 'TRIANGLE'$}} - case CIRCE: // expected-error-re {{use of undeclared identifier 'CIRCE'$}} + case SQUARE: // expected-error-re {{use of undeclared identifier 'SQUARE'{{$}}}} + case TRIANGLE: // expected-error-re {{use of undeclared identifier 'TRIANGLE'{{$}}}} + case CIRCE: // expected-error-re {{use of undeclared identifier 'CIRCE'{{$}}}} break; } } @@ -126,13 +126,13 @@ void testAccess() { long readline(const char *, char *, unsigned long); void assign_to_unknown_var() { - deadline_ = 1; // expected-error-re {{use of undeclared identifier 'deadline_'$}} + deadline_ = 1; // expected-error-re {{use of undeclared identifier 'deadline_'{{$}}}} } namespace no_ns_before_dot { namespace re2 {} void test() { - req.set_check(false); // expected-error-re {{use of undeclared identifier 'req'$}} + req.set_check(false); // expected-error-re {{use of undeclared identifier 'req'{{$}}}} } } diff --git a/clang/test/SemaCXX/typo-correction.cpp b/clang/test/SemaCXX/typo-correction.cpp index 4047e6a18ce..8dbedd2dc47 100644 --- a/clang/test/SemaCXX/typo-correction.cpp +++ b/clang/test/SemaCXX/typo-correction.cpp @@ -299,6 +299,6 @@ namespace CorrectTypo_has_reached_its_limit { int flibberdy(); // expected-note{{'flibberdy' declared here}} int no_correction() { return hibberdy() + // expected-error{{use of undeclared identifier 'hibberdy'; did you mean 'flibberdy'?}} - gibberdy(); // expected-error-re{{use of undeclared identifier 'gibberdy'$}} + gibberdy(); // expected-error-re{{use of undeclared identifier 'gibberdy'{{$}}}} }; } diff --git a/clang/test/SemaTemplate/dependent-names.cpp b/clang/test/SemaTemplate/dependent-names.cpp index 4d4aafa918c..5a25030803e 100644 --- a/clang/test/SemaTemplate/dependent-names.cpp +++ b/clang/test/SemaTemplate/dependent-names.cpp @@ -232,7 +232,7 @@ namespace PR10053 { struct Data {}; } - std::ostream &print(std::ostream &out, int); // expected-note-re {{should be declared prior to the call site$}} + std::ostream &print(std::ostream &out, int); // expected-note-re {{should be declared prior to the call site{{$}}}} std::ostream &print(std::ostream &out, ns::Data); // expected-note {{should be declared prior to the call site or in namespace 'PR10053::my_file2_a::ns'}} std::ostream &print(std::ostream &out, std::vector<ns2::Data>); // expected-note {{should be declared prior to the call site or in namespace 'PR10053::my_file2_a::ns2'}} std::ostream &print(std::ostream &out, std::pair<ns::Data, ns2::Data>); // expected-note {{should be declared prior to the call site or in an associated namespace of one of its arguments}} @@ -397,5 +397,5 @@ namespace OperatorNew { struct X {}; }; using size_t = decltype(sizeof(0)); -void *operator new(size_t, OperatorNew::X); // expected-note-re {{should be declared prior to the call site$}} +void *operator new(size_t, OperatorNew::X); // expected-note-re {{should be declared prior to the call site{{$}}}} template void OperatorNew::f(OperatorNew::X); // expected-note {{instantiation of}} diff --git a/clang/test/SemaTemplate/ms-lookup-template-base-classes.cpp b/clang/test/SemaTemplate/ms-lookup-template-base-classes.cpp index 5a56cb2ea3f..e956cd11c54 100644 --- a/clang/test/SemaTemplate/ms-lookup-template-base-classes.cpp +++ b/clang/test/SemaTemplate/ms-lookup-template-base-classes.cpp @@ -222,7 +222,7 @@ template <typename T> struct C : T { }; template struct B<A>; -template struct C<A>; // expected-note-re 1+ {{in instantiation of member function 'PR16014::C<PR16014::A>::.*' requested here}} +template struct C<A>; // expected-note-re 1+ {{in instantiation of member function 'PR16014::C<PR16014::A>::{{.*}}' requested here}} template <typename T> struct D : T { struct Inner { diff --git a/clang/test/SemaTemplate/typename-specifier.cpp b/clang/test/SemaTemplate/typename-specifier.cpp index 733dc7fa184..6bd567f6ae9 100644 --- a/clang/test/SemaTemplate/typename-specifier.cpp +++ b/clang/test/SemaTemplate/typename-specifier.cpp @@ -137,8 +137,8 @@ class ExampleClass1 { void foo() { pair<ExampleItemSet::iterator, int> i; // expected-error {{template argument for template type parameter must be a type; did you forget 'typename'?}} - pair<this->ExampleItemSet::iterator, int> i; // expected-error-re {{template argument for template type parameter must be a type$}} - pair<ExampleItemSet::operator[], int> i; // expected-error-re {{template argument for template type parameter must be a type$}} + pair<this->ExampleItemSet::iterator, int> i; // expected-error-re {{template argument for template type parameter must be a type{{$}}}} + pair<ExampleItemSet::operator[], int> i; // expected-error-re {{template argument for template type parameter must be a type{{$}}}} } pair<ExampleItemSet::iterator, int> elt; // expected-error {{template argument for template type parameter must be a type; did you forget 'typename'?}} |