From 4ebdf5c4f587daef4e0be499802eac3a7a49bf2f Mon Sep 17 00:00:00 2001 From: Ed Schouten Date: Sat, 27 Jun 2009 10:45:02 +0000 Subject: Import Clang r74383. --- test/SemaTemplate/operator-template.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 test/SemaTemplate/operator-template.cpp (limited to 'test/SemaTemplate/operator-template.cpp') diff --git a/test/SemaTemplate/operator-template.cpp b/test/SemaTemplate/operator-template.cpp new file mode 100644 index 000000000000..3d041ec13a32 --- /dev/null +++ b/test/SemaTemplate/operator-template.cpp @@ -0,0 +1,14 @@ +// RUN: clang-cc -fsyntax-only -verify %s + +// Make sure we accept this +templatestruct A{typedef X Y;}; +templatebool operator==(A,typename A::Y); +int a(A x) { return operator==(x,1); } + +// FIXME: The diagnostic here is a bit messed up +templatestruct B{typedef X Y;}; +templatebool operator==(B*,typename B::Y); // \ +expected-error{{overloaded 'operator==' must have at least one parameter of class or enumeration type}} \ +expected-note{{in instantiation of default argument for 'operator==' required here}} +int a(B x) { return operator==(&x,1); } + -- cgit v1.3