Refactored code gen for ivar access in preparation for
objc2 nonfragile ivar access code gen.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63541 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/CodeGen/CGExpr.cpp b/lib/CodeGen/CGExpr.cpp
index 5c304d1..726755d 100644
--- a/lib/CodeGen/CGExpr.cpp
+++ b/lib/CodeGen/CGExpr.cpp
@@ -1034,7 +1034,8 @@
return EmitLValueForBitfield(BaseValue, const_cast<FieldDecl *>(Field),
CVRQualifiers, Index);
}
- llvm::Value *V = Builder.CreateStructGEP(BaseValue, Index, "tmp");
+ llvm::Value *V = CGM.getObjCRuntime().EmitObjCValueForIvar(*this,
+ BaseValue, Ivar, Field, CVRQualifiers);
LValue LV = LValue::MakeAddr(V, Ivar->getType().getCVRQualifiers()|CVRQualifiers);
SetVarDeclObjCAttribute(getContext(), Ivar, Ivar->getType(), LV);
LValue::SetObjCIvar(LV, true);