Reverted 305379 (Function with unparsed body is a definition)

It broke clang-x86_64-linux-selfhost-modules-2 and some other buildbots.

llvm-svn: 305381
diff --git a/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp b/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
index 11c6c51..148ce24 100644
--- a/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
+++ b/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
@@ -1782,12 +1782,6 @@
       Previous.clear();
   }
 
-  if (isFriend) {
-    Function->setObjectOfFriendDecl();
-    if (FunctionTemplate)
-      FunctionTemplate->setObjectOfFriendDecl();
-  }
-
   SemaRef.CheckFunctionDeclaration(/*Scope*/ nullptr, Function, Previous,
                                    isExplicitSpecialization);
 
@@ -1798,6 +1792,7 @@
   // If the original function was part of a friend declaration,
   // inherit its namespace state and add it to the owner.
   if (isFriend) {
+    PrincipalDecl->setObjectOfFriendDecl();
     DC->makeDeclVisibleInContext(PrincipalDecl);
 
     bool QueuedInstantiation = false;