When copping out on a friend template declaration, be sure to mark its
access specifier as public.
llvm-svn: 135649
diff --git a/clang/lib/Sema/SemaDeclCXX.cpp b/clang/lib/Sema/SemaDeclCXX.cpp
index 9ad9a2f..0328045 100644
--- a/clang/lib/Sema/SemaDeclCXX.cpp
+++ b/clang/lib/Sema/SemaDeclCXX.cpp
@@ -8263,11 +8263,13 @@
if (Invalid)
return 0;
- return CheckClassTemplate(S, TagSpec, TUK_Friend, TagLoc,
- SS, Name, NameLoc, Attr,
- TemplateParams, AS_public,
- TempParamLists.size() - 1,
+ Decl * Result = CheckClassTemplate(S, TagSpec, TUK_Friend, TagLoc,
+ SS, Name, NameLoc, Attr,
+ TemplateParams, AS_public,
+ TempParamLists.size() - 1,
(TemplateParameterList**) TempParamLists.release()).take();
+ Result->setAccess(AS_public);
+ return Result;
} else {
// The "template<>" header is extraneous.
Diag(TemplateParams->getTemplateLoc(), diag::err_template_tag_noparams)