diff options
author | Douglas Gregor <dgregor@apple.com> | 2011-08-09 00:37:14 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2011-08-09 00:37:14 +0000 |
commit | 3f86ce1dc64a46d9cd3675787b8af32c9158abe6 (patch) | |
tree | c39ceaa693d4262d65512937d4eb43e5ce86e174 /lib/CodeGen/CGExprScalar.cpp | |
parent | 6b167f4fc40477847687c004b73166f53eeda8da (diff) |
Hand materialization of temporary expressions when emitting a scalar
expression. Fxies PR10592.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137086 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/CGExprScalar.cpp')
-rw-r--r-- | lib/CodeGen/CGExprScalar.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/lib/CodeGen/CGExprScalar.cpp b/lib/CodeGen/CGExprScalar.cpp index 524d79e131..4038be2792 100644 --- a/lib/CodeGen/CGExprScalar.cpp +++ b/lib/CodeGen/CGExprScalar.cpp @@ -343,6 +343,11 @@ public: } // C++ + Value *VisitMaterializeTemporaryExpr(const MaterializeTemporaryExpr *E) { + RValue RV = CGF.EmitLoadOfLValue(CGF.EmitLValue(E->GetTemporaryExpr())); + return RV.getScalarVal(); + } + Value *VisitCXXDefaultArgExpr(CXXDefaultArgExpr *DAE) { return Visit(DAE->getExpr()); } |