diff --git a/lib/Sema/SemaDecl.cpp b/lib/Sema/SemaDecl.cpp index 1e1b6e8b3e..045c12aab5 100644 --- a/lib/Sema/SemaDecl.cpp +++ b/lib/Sema/SemaDecl.cpp @@ -4311,10 +4311,7 @@ CreateNewDecl: New->setLexicalDeclContext(CurContext); // Set the access specifier. - // FIXME: This used to be skipped for friend tag decls, but it led to an - // assertion in Decl::CheckAccessDeclContext(); once various issues with - // friend class decls are sorted out, this should be revisited. - if (!Invalid) + if (!Invalid && TUK != TUK_Friend) SetMemberAccessSpecifier(New, PrevDecl, AS); if (TUK == TUK_Definition) diff --git a/test/SemaTemplate/instantiate-friend-class.cpp b/test/SemaTemplate/instantiate-friend-class.cpp index 004bf1b749..424419d390 100644 --- a/test/SemaTemplate/instantiate-friend-class.cpp +++ b/test/SemaTemplate/instantiate-friend-class.cpp @@ -1,4 +1,6 @@ // RUN: clang-cc -fsyntax-only -verify %s +// XFAIL +// PR4794 template class X {