summaryrefslogtreecommitdiffstats
path: root/clang/lib/Parse/ParseDeclCXX.cpp
diff options
context:
space:
mode:
authorJohn McCall <rjmccall@apple.com>2009-09-16 22:47:08 +0000
committerJohn McCall <rjmccall@apple.com>2009-09-16 22:47:08 +0000
commit11083da4d0aafc27d29479ab9b408f87e1feab0d (patch)
tree9aac71db944f65be6c44b99446fae78abf798cc7 /clang/lib/Parse/ParseDeclCXX.cpp
parent4498168753db4b73ce4424635919fed4d128f504 (diff)
downloadbcm5719-llvm-11083da4d0aafc27d29479ab9b408f87e1feab0d.tar.gz
bcm5719-llvm-11083da4d0aafc27d29479ab9b408f87e1feab0d.zip
Improved representation and support for friend class templates. Angst about same.
llvm-svn: 82088
Diffstat (limited to 'clang/lib/Parse/ParseDeclCXX.cpp')
-rw-r--r--clang/lib/Parse/ParseDeclCXX.cpp11
1 files changed, 5 insertions, 6 deletions
diff --git a/clang/lib/Parse/ParseDeclCXX.cpp b/clang/lib/Parse/ParseDeclCXX.cpp
index e1228cf1fdf..671a5421cc1 100644
--- a/clang/lib/Parse/ParseDeclCXX.cpp
+++ b/clang/lib/Parse/ParseDeclCXX.cpp
@@ -1011,12 +1011,15 @@ void Parser::ParseCXXClassMemberDeclaration(AccessSpecifier AS,
DeclSpec DS;
ParseDeclarationSpecifiers(DS, TemplateInfo, AS, DSC_class);
+ Action::MultiTemplateParamsArg TemplateParams(Actions,
+ TemplateInfo.TemplateParams? TemplateInfo.TemplateParams->data() : 0,
+ TemplateInfo.TemplateParams? TemplateInfo.TemplateParams->size() : 0);
+
if (Tok.is(tok::semi)) {
ConsumeToken();
if (DS.isFriendSpecified()) {
- bool IsTemplate = TemplateInfo.Kind != ParsedTemplateInfo::NonTemplate;
- Actions.ActOnFriendTypeDecl(CurScope, DS, IsTemplate);
+ Actions.ActOnFriendTypeDecl(CurScope, DS, move(TemplateParams));
} else
Actions.ParsedFreeStandingDeclSpec(CurScope, DS);
@@ -1119,10 +1122,6 @@ void Parser::ParseCXXClassMemberDeclaration(AccessSpecifier AS,
// this call will *not* return the created decl; It will return null.
// See Sema::ActOnCXXMemberDeclarator for details.
- Action::MultiTemplateParamsArg TemplateParams(Actions,
- TemplateInfo.TemplateParams? TemplateInfo.TemplateParams->data() : 0,
- TemplateInfo.TemplateParams? TemplateInfo.TemplateParams->size() : 0);
-
DeclPtrTy ThisDecl;
if (DS.isFriendSpecified()) {
// TODO: handle initializers, bitfields, 'delete'
OpenPOWER on IntegriCloud