Fix g++.dg regressions introduced at r115347 (rdar://8529993)

llvm-svn: 116144
diff --git a/clang/lib/Sema/SemaDecl.cpp b/clang/lib/Sema/SemaDecl.cpp
index fa3a404..8efd495 100644
--- a/clang/lib/Sema/SemaDecl.cpp
+++ b/clang/lib/Sema/SemaDecl.cpp
@@ -3675,7 +3675,7 @@
   }
 
   if (D.getCXXScopeSpec().isSet() && !NewFD->isInvalidDecl()) {
-    if (!CurContext->isRecord()) {
+    if (isFriend || !CurContext->isRecord()) {
       // Fake up an access specifier if it's supposed to be a class member.
       if (!Redeclaration && isa<CXXRecordDecl>(NewFD->getDeclContext()))
         NewFD->setAccess(AS_public);
@@ -3722,7 +3722,7 @@
             Diag((*Func)->getLocation(), diag::note_member_def_close_match);
         }
       }
-    } else if (!isFriend) { 
+    } else {
       // The user provided a superfluous scope specifier inside a class definition:
       //
       // class X {