diff --git a/clang/lib/Parse/ParseDecl.cpp b/clang/lib/Parse/ParseDecl.cpp --- a/clang/lib/Parse/ParseDecl.cpp +++ b/clang/lib/Parse/ParseDecl.cpp @@ -3266,13 +3266,13 @@ return; } - if (getCurScope()->getFnParent() || getCurScope()->getBlockParent()) - CCC = Sema::PCC_LocalDeclarationSpecifiers; - else if (TemplateInfo.Kind != ParsedTemplateInfo::NonTemplate) + if (TemplateInfo.Kind != ParsedTemplateInfo::NonTemplate) CCC = DSContext == DeclSpecContext::DSC_class ? Sema::PCC_MemberTemplate : Sema::PCC_Template; else if (DSContext == DeclSpecContext::DSC_class) CCC = Sema::PCC_Class; + else if (getCurScope()->getFnParent() || getCurScope()->getBlockParent()) + CCC = Sema::PCC_LocalDeclarationSpecifiers; else if (CurParsedObjCImpl) CCC = Sema::PCC_ObjCImplementation;