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/CGObjCMac.cpp b/lib/CodeGen/CGObjCMac.cpp
index bd51089..f6e3207 100644
--- a/lib/CodeGen/CGObjCMac.cpp
+++ b/lib/CodeGen/CGObjCMac.cpp
@@ -168,14 +168,9 @@
const llvm::SmallVectorImpl<std::string> &Protocols);
virtual llvm::Value *GenerateProtocolRef(llvm::IRBuilder<> &Builder,
- const char *ProtocolName);
+ const ObjCProtocolDecl *PD);
- virtual void GenerateProtocol(const char *ProtocolName,
- const llvm::SmallVectorImpl<std::string> &Protocols,
- const llvm::SmallVectorImpl<llvm::Constant *> &InstanceMethodNames,
- const llvm::SmallVectorImpl<llvm::Constant *> &InstanceMethodTypes,
- const llvm::SmallVectorImpl<llvm::Constant *> &ClassMethodNames,
- const llvm::SmallVectorImpl<llvm::Constant *> &ClassMethodTypes);
+ virtual void GenerateProtocol(const ObjCProtocolDecl *PD);
virtual llvm::Function *ModuleInitFunction();
};
@@ -300,18 +295,13 @@
}
llvm::Value *CGObjCMac::GenerateProtocolRef(llvm::IRBuilder<> &Builder,
- const char *ProtocolName) {
+ const ObjCProtocolDecl *PD) {
// assert(0 && "Cannot get protocol reference on Mac runtime.");
return llvm::Constant::getNullValue(ObjCTypes.ProtocolPtrTy);
return 0;
}
-void CGObjCMac::GenerateProtocol(const char *ProtocolName,
- const llvm::SmallVectorImpl<std::string> &Protocols,
- const llvm::SmallVectorImpl<llvm::Constant *> &InstanceMethodNames,
- const llvm::SmallVectorImpl<llvm::Constant *> &InstanceMethodTypes,
- const llvm::SmallVectorImpl<llvm::Constant *> &ClassMethodNames,
- const llvm::SmallVectorImpl<llvm::Constant *> &ClassMethodTypes) {
+void CGObjCMac::GenerateProtocol(const ObjCProtocolDecl *PD) {
// assert(0 && "Cannot generate protocol for Mac runtime.");
}