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);