aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen/CGExprScalar.cpp
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2011-08-09 00:37:14 +0000
committerDouglas Gregor <dgregor@apple.com>2011-08-09 00:37:14 +0000
commit3f86ce1dc64a46d9cd3675787b8af32c9158abe6 (patch)
treec39ceaa693d4262d65512937d4eb43e5ce86e174 /lib/CodeGen/CGExprScalar.cpp
parent6b167f4fc40477847687c004b73166f53eeda8da (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.cpp5
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());
}