Add an ActOnFriendDecl and call it for friend class decls.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71482 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Parse/ParseDeclCXX.cpp b/lib/Parse/ParseDeclCXX.cpp
index e1e81ec..da99ab9 100644
--- a/lib/Parse/ParseDeclCXX.cpp
+++ b/lib/Parse/ParseDeclCXX.cpp
@@ -525,10 +525,18 @@
   }
 
   const char *PrevSpec = 0;
-  if (TagOrTempResult.isInvalid())
+  if (TagOrTempResult.isInvalid()) {
     DS.SetTypeSpecError();
-  else if (DS.SetTypeSpecType(TagType, StartLoc, PrevSpec, 
-                              TagOrTempResult.get().getAs<void>()))
+    return;
+  }
+  
+  if (DS.isFriendSpecified() && 
+      !Actions.ActOnFriendDecl(CurScope, DS.getFriendSpecLoc(), 
+                               TagOrTempResult.get()))
+    return;
+    
+  if (DS.SetTypeSpecType(TagType, StartLoc, PrevSpec, 
+                         TagOrTempResult.get().getAs<void>()))
     Diag(StartLoc, diag::err_invalid_decl_spec_combination) << PrevSpec;
 }