objc2's ir-gen for nonfragile ivar access.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63578 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/CodeGen/CodeGenFunction.h b/lib/CodeGen/CodeGenFunction.h
index 9033a65..75353a7 100644
--- a/lib/CodeGen/CodeGenFunction.h
+++ b/lib/CodeGen/CodeGenFunction.h
@@ -233,6 +233,10 @@
   /// LoadObjCSelf - Load the value of self. This function is only
   /// valid while generating code for an Objective-C method.
   llvm::Value *LoadObjCSelf();
+  
+  /// TypeOfSelfObject
+  /// Return type of object that this self represents.
+  QualType TypeOfSelfObject();
 
   /// isObjCPointerType - Return true if the specificed AST type will map onto
   /// some Objective-C pointer type.
@@ -521,7 +525,8 @@
                               const ObjCIvarDecl *Ivar);
   LValue EmitLValueForField(llvm::Value* Base, FieldDecl* Field,
                             bool isUnion, unsigned CVRQualifiers);
-  LValue EmitLValueForIvar(llvm::Value* Base, const ObjCIvarDecl *Ivar,
+  LValue EmitLValueForIvar(QualType ObjectTy,
+                           llvm::Value* Base, const ObjCIvarDecl *Ivar,
                            const FieldDecl *Field,
                            unsigned CVRQualifiers);