diff options
-rw-r--r-- | CodeGen/CGComplexExpr.cpp | 6 | ||||
-rw-r--r-- | CodeGen/CGExpr.cpp | 2 |
2 files changed, 7 insertions, 1 deletions
diff --git a/CodeGen/CGComplexExpr.cpp b/CodeGen/CGComplexExpr.cpp index 7f94e26dbd..c7296fcfd0 100644 --- a/CodeGen/CGComplexExpr.cpp +++ b/CodeGen/CGComplexExpr.cpp @@ -77,6 +77,8 @@ public: // No comparisons produce a complex result. ComplexPairTy VisitBinAssign (const BinaryOperator *E); + ComplexPairTy VisitBinComma (const BinaryOperator *E); + ComplexPairTy VisitConditionalOperator(const ConditionalOperator *CO); // case Expr::ChooseExprClass: @@ -150,6 +152,10 @@ ComplexPairTy ComplexExprEmitter::VisitBinAssign(const BinaryOperator *E) { return Val; } +ComplexPairTy ComplexExprEmitter::VisitBinComma(const BinaryOperator *E) { + CGF.EmitStmt(E->getLHS()); + return Visit(E->getRHS()); +} ComplexPairTy ComplexExprEmitter:: VisitConditionalOperator(const ConditionalOperator *E) { diff --git a/CodeGen/CGExpr.cpp b/CodeGen/CGExpr.cpp index 5e60e7b7b9..6cb4e86dc0 100644 --- a/CodeGen/CGExpr.cpp +++ b/CodeGen/CGExpr.cpp @@ -1353,7 +1353,7 @@ RValue CodeGenFunction::EmitBinaryAssign(const BinaryOperator *E) { RValue CodeGenFunction::EmitBinaryComma(const BinaryOperator *E) { - EmitExpr(E->getLHS()); + EmitStmt(E->getLHS()); return EmitExpr(E->getRHS()); } |