diff options
Diffstat (limited to 'lib/Parse/ParseTemplate.cpp')
-rw-r--r-- | lib/Parse/ParseTemplate.cpp | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/lib/Parse/ParseTemplate.cpp b/lib/Parse/ParseTemplate.cpp index 9343f5b733..4f2f49c804 100644 --- a/lib/Parse/ParseTemplate.cpp +++ b/lib/Parse/ParseTemplate.cpp @@ -31,8 +31,9 @@ Parser::ParseDeclarationStartingWithTemplate(unsigned Context, ObjCDeclContextSwitch ObjCDC(*this); if (Tok.is(tok::kw_template) && NextToken().isNot(tok::less)) { - return ParseExplicitInstantiation(SourceLocation(), ConsumeToken(), - DeclEnd); + return ParseExplicitInstantiation(Context, + SourceLocation(), ConsumeToken(), + DeclEnd, AS); } return ParseTemplateDeclarationOrSpecialization(Context, DeclEnd, AS, AccessAttrs); @@ -1107,17 +1108,19 @@ Parser::ParseTemplateArgumentList(TemplateArgList &TemplateArgs) { /// 'extern' [opt] 'template' declaration /// /// Note that the 'extern' is a GNU extension and C++0x feature. -Decl *Parser::ParseExplicitInstantiation(SourceLocation ExternLoc, +Decl *Parser::ParseExplicitInstantiation(unsigned Context, + SourceLocation ExternLoc, SourceLocation TemplateLoc, - SourceLocation &DeclEnd) { + SourceLocation &DeclEnd, + AccessSpecifier AS) { // This isn't really required here. ParsingDeclRAIIObject ParsingTemplateParams(*this); - return ParseSingleDeclarationAfterTemplate(Declarator::FileContext, + return ParseSingleDeclarationAfterTemplate(Context, ParsedTemplateInfo(ExternLoc, TemplateLoc), ParsingTemplateParams, - DeclEnd, AS_none); + DeclEnd, AS); } SourceRange Parser::ParsedTemplateInfo::getSourceRange() const { |