/// ObjCIvarOffsetVariable - Returns the ivar offset variable for
/// the given ivar.
///
- llvm::GlobalVariable * ObjCIvarOffsetVariable(std::string &Name,
+ llvm::GlobalVariable * ObjCIvarOffsetVariable(
const ObjCInterfaceDecl *ID,
const ObjCIvarDecl *Ivar);
/// the given ivar.
///
llvm::GlobalVariable * CGObjCNonFragileABIMac::ObjCIvarOffsetVariable(
- std::string &Name,
const ObjCInterfaceDecl *ID,
const ObjCIvarDecl *Ivar) {
- Name += "OBJC_IVAR_$_" +
+ std::string Name = "OBJC_IVAR_$_" +
getInterfaceDeclForIvar(ID, Ivar, CGM.getContext())->getNameAsString() +
'.' + Ivar->getNameAsString();
llvm::GlobalVariable *IvarOffsetGV =
assert(ObjectTy->isObjCInterfaceType() &&
"CGObjCNonFragileABIMac::EmitObjCValueForIvar");
ObjCInterfaceDecl *ID = ObjectTy->getAsObjCInterfaceType()->getDecl();
- std::string ExternalName;
- llvm::GlobalVariable *IvarOffsetGV =
- ObjCIvarOffsetVariable(ExternalName, ID, Ivar);
+ llvm::GlobalVariable *IvarOffsetGV = ObjCIvarOffsetVariable(ID, Ivar);
// (char *) BaseValue
llvm::Value *V = CGF.Builder.CreateBitCast(BaseValue, ObjCTypes.Int8PtrTy);
CodeGen::CodeGenFunction &CGF,
ObjCInterfaceDecl *Interface,
const ObjCIvarDecl *Ivar) {
- std::string ExternalName;
- llvm::GlobalVariable *IvarOffsetGV =
- ObjCIvarOffsetVariable(ExternalName, Interface, Ivar);
-
- return CGF.Builder.CreateLoad(IvarOffsetGV, false, "ivar");
+ return CGF.Builder.CreateLoad(ObjCIvarOffsetVariable(Interface, Ivar),
+ false, "ivar");
}
CodeGen::RValue CGObjCNonFragileABIMac::EmitMessageSend(