diff options
Diffstat (limited to 'test/SemaTemplate/operator-template.cpp')
-rw-r--r-- | test/SemaTemplate/operator-template.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/test/SemaTemplate/operator-template.cpp b/test/SemaTemplate/operator-template.cpp index 4300755cf7118..777b0f5f42a13 100644 --- a/test/SemaTemplate/operator-template.cpp +++ b/test/SemaTemplate/operator-template.cpp @@ -2,7 +2,8 @@ // Make sure we accept this template<class X>struct A{typedef X Y;}; -template<class X>bool operator==(A<X>,typename A<X>::Y); +template<class X>bool operator==(A<X>,typename A<X>::Y); // expected-note{{candidate template ignored: failed template argument deduction}} + int a(A<int> x) { return operator==(x,1); } int a0(A<int> x) { return x == 1; } @@ -10,7 +11,8 @@ int a0(A<int> x) { return x == 1; } // FIXME: the location information for the note isn't very good template<class X>struct B{typedef X Y;}; template<class X>bool operator==(B<X>*,typename B<X>::Y); // \ -expected-error{{overloaded 'operator==' must have at least one parameter of class or enumeration type}} \ -expected-note{{in instantiation of function template specialization}} -int a(B<int> x) { return operator==(&x,1); } +// expected-error{{overloaded 'operator==' must have at least one parameter of class or enumeration type}} \ +// expected-note{{in instantiation of function template specialization}} \ +// expected-note{{candidate template ignored: substitution failure [with X = int]}} +int a(B<int> x) { return operator==(&x,1); } // expected-error{{no matching function for call to 'operator=='}} |