mirror of
https://github.com/llvm/llvm-project.git
synced 2025-05-03 05:46:07 +00:00
"This patch fixes message sends to super in class methods for the GNU runtime (currently an instance method lookup is being performed)."
Patch by David Chisnall! llvm-svn: 69493
This commit is contained in:
parent
19bd27f493
commit
c1b96c3590
@ -299,8 +299,9 @@ CGObjCGNU::GenerateMessageSendSuper(CodeGen::CodeGenFunction &CGF,
|
||||
const ObjCInterfaceDecl *SuperClass = Class->getSuperClass();
|
||||
// TODO: This should be cached, not looked up every time.
|
||||
llvm::Value *ReceiverClass = GetClass(CGF.Builder, SuperClass);
|
||||
|
||||
|
||||
if (IsClassMessage)
|
||||
ReceiverClass = CGF.Builder.CreateBitCast(CGF.Builder.CreateLoad(
|
||||
CGF.Builder.CreateStructGEP(ReceiverClass, 0)), IdTy);
|
||||
// Construct the structure used to look up the IMP
|
||||
llvm::StructType *ObjCSuperTy = llvm::StructType::get(Receiver->getType(),
|
||||
IdTy, NULL);
|
||||
|
Loading…
x
Reference in New Issue
Block a user