summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CGObjCRuntime.h
diff options
context:
space:
mode:
Diffstat (limited to 'clang/lib/CodeGen/CGObjCRuntime.h')
-rw-r--r--clang/lib/CodeGen/CGObjCRuntime.h23
1 files changed, 13 insertions, 10 deletions
diff --git a/clang/lib/CodeGen/CGObjCRuntime.h b/clang/lib/CodeGen/CGObjCRuntime.h
index 83ca0e638c9..368e5ae1059 100644
--- a/clang/lib/CodeGen/CGObjCRuntime.h
+++ b/clang/lib/CodeGen/CGObjCRuntime.h
@@ -31,6 +31,7 @@ namespace llvm {
namespace clang {
class ObjCCategoryImplDecl;
class ObjCImplementationDecl;
+ class ObjCInterfaceDecl;
class ObjCMethodDecl;
class ObjCProtocolDecl;
class Selector;
@@ -78,13 +79,14 @@ public:
/// Generate an Objective-C message send operation to the super
/// class.
- virtual llvm::Value *GenerateMessageSendSuper(llvm::IRBuilder<true> &Builder,
- const llvm::Type *ReturnTy,
- const char *SuperClassName,
- llvm::Value *Receiver,
- Selector Sel,
- llvm::Value** ArgV,
- unsigned ArgC) = 0;
+ virtual llvm::Value *
+ GenerateMessageSendSuper(llvm::IRBuilder<true> &Builder,
+ const llvm::Type *ReturnTy,
+ const ObjCInterfaceDecl *SuperClassName,
+ llvm::Value *Receiver,
+ Selector Sel,
+ llvm::Value** ArgV,
+ unsigned ArgC) = 0;
/// Emit the code to return the named protocol as an object, as in a
/// @protocol expression.
@@ -104,9 +106,10 @@ public:
// parameters are passed.
virtual llvm::Function *GenerateMethod(const ObjCMethodDecl *OMD) = 0;
- /// Look up the class for the specified name
- virtual llvm::Value *LookupClass(BuilderType &Builder,
- llvm::Value *ClassName) = 0;
+ /// GetClass - Return a reference to the class for the given
+ /// interface decl.
+ virtual llvm::Value *GetClass(BuilderType &Builder,
+ const ObjCInterfaceDecl *OID) = 0;
/// If instance variable addresses are determined at runtime then this should
/// return true, otherwise instance variables will be accessed directly from
OpenPOWER on IntegriCloud