summaryrefslogtreecommitdiffstats
path: root/clang/test/SemaCXX/nested-name-spec.cpp
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2009-03-23 23:06:20 +0000
committerDouglas Gregor <dgregor@apple.com>2009-03-23 23:06:20 +0000
commitf4f296de01568857bec625f2983f60638afbcc0e (patch)
treec9bcca6c32c490a0633be94d8747b3d95dc4c197 /clang/test/SemaCXX/nested-name-spec.cpp
parent7fe1b0f50fc9255e545427693a6a3020aeb3fc37 (diff)
downloadbcm5719-llvm-f4f296de01568857bec625f2983f60638afbcc0e.tar.gz
bcm5719-llvm-f4f296de01568857bec625f2983f60638afbcc0e.zip
Template instantiation for the declarations of member functions within
a class template. At present, we can only instantiation normal methods, but not constructors, destructors, or conversion operators. As ever, this contains a bit of refactoring in Sema's type-checking. In particular: - Split ActOnFunctionDeclarator into ActOnFunctionDeclarator (handling the declarator itself) and CheckFunctionDeclaration (checking for the the function declaration), the latter of which is also used by template instantiation. - We were performing the adjustment of function parameter types in three places; collect those into a single new routine. - When the type of a parameter is adjusted, allocate an OriginalParmVarDecl to keep track of the type as it was written. - Eliminate a redundant check for out-of-line declarations of member functions; hide more C++-specific checks on function declarations behind if(getLangOptions().CPlusPlus). llvm-svn: 67575
Diffstat (limited to 'clang/test/SemaCXX/nested-name-spec.cpp')
-rw-r--r--clang/test/SemaCXX/nested-name-spec.cpp3
1 files changed, 1 insertions, 2 deletions
diff --git a/clang/test/SemaCXX/nested-name-spec.cpp b/clang/test/SemaCXX/nested-name-spec.cpp
index eaca56c7252..4b4d435f209 100644
--- a/clang/test/SemaCXX/nested-name-spec.cpp
+++ b/clang/test/SemaCXX/nested-name-spec.cpp
@@ -101,8 +101,7 @@ void f6(int A2::RC::x); // expected-error{{parameter declarator cannot be qualif
int A2::RC::x; // expected-error{{non-static data member defined out-of-line}}
-void A2::CC::NC::m(); // expected-error{{out-of-line declaration of a member must be a definition}} \
- // expected-error{{out-of-line declaration of a member must be a definition}}
+void A2::CC::NC::m(); // expected-error{{out-of-line declaration of a member must be a definition}}
namespace E {
OpenPOWER on IntegriCloud