diff options
author | John McCall <rjmccall@apple.com> | 2009-09-16 22:47:08 +0000 |
---|---|---|
committer | John McCall <rjmccall@apple.com> | 2009-09-16 22:47:08 +0000 |
commit | 11083da4d0aafc27d29479ab9b408f87e1feab0d (patch) | |
tree | 9aac71db944f65be6c44b99446fae78abf798cc7 /clang/lib/Parse/ParseDeclCXX.cpp | |
parent | 4498168753db4b73ce4424635919fed4d128f504 (diff) | |
download | bcm5719-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.cpp | 11 |
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' |