completely refactor codegen of scalar expressions out into its own CGExprScalar.cpp file.
This patch temporarily breaks compound assignment operators, but greatly simplifies many
things.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@41355 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/CodeGen/CGStmt.cpp b/CodeGen/CGStmt.cpp
index 7b69e51..9ce2a67 100644
--- a/CodeGen/CGStmt.cpp
+++ b/CodeGen/CGStmt.cpp
@@ -275,8 +275,9 @@
// Emit the result value, even if unused, to evalute the side effects.
const Expr *RV = S.getRetValue();
// FIXME: Handle return of an aggregate!
- if (RV)
- RetVal = EmitExpr(RV);
+ if (RV)
+ // FIXME: This could be much better for return of aggregate: return inplace.
+ RetVal = EmitAnyExpr(RV);
else // Silence a bogus GCC warning.
RetVal = RValue::get(0);