]> granicus.if.org Git - clang/commitdiff
More volatile fixes. Can't testcase these yet as ultimately volatile
authorMike Stump <mrs@apple.com>
Sat, 23 May 2009 21:40:07 +0000 (21:40 +0000)
committerMike Stump <mrs@apple.com>
Sat, 23 May 2009 21:40:07 +0000 (21:40 +0000)
is still ignored.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72344 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/CGExpr.cpp
lib/CodeGen/CGExprAgg.cpp

index 2fe67542933e5ab0d0db8d9ab8972f74fec1fb80..559bd4c60bcf825018c3b7cbcd017fe1e6b7da0b 100644 (file)
@@ -56,7 +56,7 @@ RValue CodeGenFunction::EmitAnyExpr(const Expr *E, llvm::Value *AggLoc,
     return RValue::getComplex(EmitComplexExpr(E));
   
   EmitAggExpr(E, AggLoc, isAggLocVolatile);
-  return RValue::getAggregate(AggLoc);
+  return RValue::getAggregate(AggLoc, isAggLocVolatile);
 }
 
 /// EmitAnyExprToTemp - Similary to EmitAnyExpr(), however, the result
index b0551eb416e013ff1205fef5f533443385db20f9..951a5f0e39645852bedcc0f6cfe371131217289e 100644 (file)
@@ -197,8 +197,8 @@ void AggExprEmitter::VisitObjCKVCRefExpr(ObjCKVCRefExpr *E) {
 }
 
 void AggExprEmitter::VisitBinComma(const BinaryOperator *E) {
-  CGF.EmitAnyExpr(E->getLHS());
-  CGF.EmitAggExpr(E->getRHS(), DestPtr, false);
+  CGF.EmitAnyExprToTemp(E->getLHS(), 0, VolatileDest);
+  CGF.EmitAggExpr(E->getRHS(), DestPtr, VolatileDest);
 }
 
 void AggExprEmitter::VisitStmtExpr(const StmtExpr *E) {