diff options
author | Mike Stump <mrs@apple.com> | 2009-05-23 23:52:31 +0000 |
---|---|---|
committer | Mike Stump <mrs@apple.com> | 2009-05-23 23:52:31 +0000 |
commit | a49af1a4283bfeda1f418a03fd6af04bab79551d (patch) | |
tree | 0d56d39ea8e73afb65f02e92da7ef7cfd626b7ff /lib/CodeGen/CGExprAgg.cpp | |
parent | 240993d17d2b51c78d52df8743bdee4177960341 (diff) |
Propagate volatile for implicit property refernces.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72353 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/CGExprAgg.cpp')
-rw-r--r-- | lib/CodeGen/CGExprAgg.cpp | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/lib/CodeGen/CGExprAgg.cpp b/lib/CodeGen/CGExprAgg.cpp index ecfbf4836c..3da7da86d8 100644 --- a/lib/CodeGen/CGExprAgg.cpp +++ b/lib/CodeGen/CGExprAgg.cpp @@ -235,13 +235,12 @@ void AggExprEmitter::VisitBinAssign(const BinaryOperator *E) { RValue::getAggregate(AggLoc, VolatileDest)); } else if (LHS.isKVCRef()) { - // FIXME: Volatility? llvm::Value *AggLoc = DestPtr; if (!AggLoc) AggLoc = CGF.CreateTempAlloca(CGF.ConvertType(E->getRHS()->getType())); - CGF.EmitAggExpr(E->getRHS(), AggLoc, false); + CGF.EmitAggExpr(E->getRHS(), AggLoc, VolatileDest); CGF.EmitObjCPropertySet(LHS.getKVCRefExpr(), - RValue::getAggregate(AggLoc)); + RValue::getAggregate(AggLoc, VolatileDest)); } else { // Codegen the RHS so that it stores directly into the LHS. CGF.EmitAggExpr(E->getRHS(), LHS.getAddress(), LHS.isVolatileQualified()); |