diff options
author | Daniel Dunbar <daniel@zuster.org> | 2008-08-29 08:11:39 +0000 |
---|---|---|
committer | Daniel Dunbar <daniel@zuster.org> | 2008-08-29 08:11:39 +0000 |
commit | 85c59edda02df48fae8dc85049743319bc6e7e89 (patch) | |
tree | b27f7f79c96e1ccc0793e561e4ea6cfc4dc9218d /lib/CodeGen/CodeGenFunction.h | |
parent | d70900be3c0b56e961d5890cca2baf2fc76f0274 (diff) |
Add special "property reference" CodeGen::LValue type for emitting
Objective-C property references.
- This handles property references "more correctly" but setters still
don't work.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55534 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/CodeGenFunction.h')
-rw-r--r-- | lib/CodeGen/CodeGenFunction.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/lib/CodeGen/CodeGenFunction.h b/lib/CodeGen/CodeGenFunction.h index 0178f8a3e3..44d4cd251a 100644 --- a/lib/CodeGen/CodeGenFunction.h +++ b/lib/CodeGen/CodeGenFunction.h @@ -265,6 +265,7 @@ public: RValue EmitLoadOfLValue(LValue V, QualType LVType); RValue EmitLoadOfExtVectorElementLValue(LValue V, QualType LVType); RValue EmitLoadOfBitfieldLValue(LValue LV, QualType ExprType); + RValue EmitLoadOfPropertyRefLValue(LValue LV, QualType ExprType); /// EmitStoreThroughLValue - Store the specified rvalue into the specified @@ -274,6 +275,7 @@ public: void EmitStoreThroughExtVectorComponentLValue(RValue Src, LValue Dst, QualType Ty); void EmitStoreThroughBitfieldLValue(RValue Src, LValue Dst, QualType Ty); + void EmitStoreThroughPropertyRefLValue(RValue Src, LValue Dst, QualType Ty); // Note: only availabe for agg return types LValue EmitCallExprLValue(const CallExpr *E); @@ -292,6 +294,7 @@ public: LValue EmitObjCMessageExprLValue(const ObjCMessageExpr *E); LValue EmitObjCIvarRefLValue(const ObjCIvarRefExpr *E); + LValue EmitObjCPropertyRefLValue(const ObjCPropertyRefExpr *E); //===--------------------------------------------------------------------===// // Scalar Expression Emission @@ -327,6 +330,7 @@ public: llvm::Value *EmitObjCSelectorExpr(const ObjCSelectorExpr *E); RValue EmitObjCMessageExpr(const ObjCMessageExpr *E); RValue EmitObjCPropertyGet(const ObjCPropertyRefExpr *E); + void EmitObjCPropertySet(const ObjCPropertyRefExpr *E, RValue Src); //===--------------------------------------------------------------------===// |