Change ObjCRuntime GenerateProtocol[Ref] methods to take
    ObjCProtocolDecl directly.

Implement CodeGen support for forward protocol decls (no-ops are so
    nice to implement).

Also moved CGObjCRuntime.h out of CodeGenModule.h


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54709 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/CodeGen/ModuleBuilder.cpp b/lib/CodeGen/ModuleBuilder.cpp
index affef35..17ac002 100644
--- a/lib/CodeGen/ModuleBuilder.cpp
+++ b/lib/CodeGen/ModuleBuilder.cpp
@@ -72,7 +72,7 @@
         Builder->EmitGlobal(FD);
       } else if (VarDecl *VD = dyn_cast<VarDecl>(D)) {
         Builder->EmitGlobal(VD);
-      } else if (isa<ObjCClassDecl>(D)){
+      } else if (isa<ObjCClassDecl>(D) || isa<ObjCForwardProtocolDecl>(D)) {
         //Forward declaration.  Only used for type checking.
       } else if (ObjCProtocolDecl *PD = dyn_cast<ObjCProtocolDecl>(D)){
         // Generate Protocol object.