diff options
author | Anders Carlsson <andersca@mac.com> | 2009-03-26 00:52:18 +0000 |
---|---|---|
committer | Anders Carlsson <andersca@mac.com> | 2009-03-26 00:52:18 +0000 |
commit | 5aeccdbb4bdc94e48c04cacc59fa812af32109b2 (patch) | |
tree | a12d78394bc3923a43dea66e6e5054c3bc772a1f /lib/Parse/ParseDeclCXX.cpp | |
parent | 50713450f61b85805e1ca97e547a4082b7798bd3 (diff) |
Handle parsing of templates in member declarations. Pass the AccessSpecifier all the way down to ActOnClassTemplate.
Doug, Sebastian: Plz review! :)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67723 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Parse/ParseDeclCXX.cpp')
-rw-r--r-- | lib/Parse/ParseDeclCXX.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/lib/Parse/ParseDeclCXX.cpp b/lib/Parse/ParseDeclCXX.cpp index 1bbf411874..61182ef9cd 100644 --- a/lib/Parse/ParseDeclCXX.cpp +++ b/lib/Parse/ParseDeclCXX.cpp @@ -460,7 +460,8 @@ void Parser::ParseClassSpecifier(DeclSpec &DS, Attr, Action::MultiTemplateParamsArg(Actions, &(*TemplateParams)[0], - TemplateParams->size())); + TemplateParams->size()), + AS); else TagOrTempResult = Actions.ActOnTag(CurScope, TagType, TK, StartLoc, SS, Name, NameLoc, Attr, AS); @@ -615,7 +616,7 @@ AccessSpecifier Parser::getAccessSpecifierIfPresent() const /// ::[opt] nested-name-specifier template[opt] unqualified-id ';'[TODO] /// using-declaration [TODO] /// [C++0x] static_assert-declaration -/// template-declaration [TODO] +/// template-declaration /// [GNU] '__extension__' member-declaration /// /// member-declarator-list: @@ -638,6 +639,10 @@ Parser::DeclTy *Parser::ParseCXXClassMemberDeclaration(AccessSpecifier AS) { if (Tok.is(tok::kw_static_assert)) return ParseStaticAssertDeclaration(); + if (Tok.is(tok::kw_template)) + return ParseTemplateDeclarationOrSpecialization(Declarator::MemberContext, + AS); + // Handle: member-declaration ::= '__extension__' member-declaration if (Tok.is(tok::kw___extension__)) { // __extension__ silences extension warnings in the subexpression. |