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/CGObjCRuntime.h b/lib/CodeGen/CGObjCRuntime.h
index 01543c5..ded1db2 100644
--- a/lib/CodeGen/CGObjCRuntime.h
+++ b/lib/CodeGen/CGObjCRuntime.h
@@ -47,6 +47,7 @@
   class ObjCMethodDecl;
   class ObjCProtocolDecl;
   class Selector;
+  class ObjCIvarDecl;
 
 namespace CodeGen {
   class CodeGenModule;
@@ -155,6 +156,12 @@
                                   llvm::Value *src, llvm::Value *dest) = 0;
   virtual void EmitObjCStrongCastAssign(CodeGen::CodeGenFunction &CGF,
                                         llvm::Value *src, llvm::Value *dest) = 0;
+  
+  virtual llvm::Value *EmitObjCValueForIvar(CodeGen::CodeGenFunction &CGF,
+                                            llvm::Value *BaseValue,
+                                            const ObjCIvarDecl *Ivar,
+                                            const FieldDecl *Field,
+                                            unsigned CVRQualifiers) = 0;
 };
 
 /// Creates an instance of an Objective-C runtime class.