Fix Obj-C super sends inside class methods.
- NeXT loads the super class at runtime; this required changing the
runtime interface to pass more information down.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55307 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/CodeGen/CGObjCRuntime.h b/lib/CodeGen/CGObjCRuntime.h
index 4a1acda..e373ef2 100644
--- a/lib/CodeGen/CGObjCRuntime.h
+++ b/lib/CodeGen/CGObjCRuntime.h
@@ -80,15 +80,18 @@
virtual CodeGen::RValue
GenerateMessageSend(CodeGen::CodeGenFunction &CGF,
const ObjCMessageExpr *E,
- llvm::Value *Receiver) = 0;
+ llvm::Value *Receiver,
+ bool IsClassMessage) = 0;
/// Generate an Objective-C message send operation to the super
- /// class.
+ /// class initiated in a method for Class and with the given Self
+ /// object.
virtual CodeGen::RValue
GenerateMessageSendSuper(CodeGen::CodeGenFunction &CGF,
const ObjCMessageExpr *E,
- const ObjCInterfaceDecl *SuperClass,
- llvm::Value *Receiver) = 0;
+ const ObjCInterfaceDecl *Class,
+ llvm::Value *Self,
+ bool IsClassMessage) = 0;
/// Emit the code to return the named protocol as an object, as in a
/// @protocol expression.