summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen
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
commit34f6c6db2625bec1845315e59202d37d3d202d87 (patch)
tree878e8b06635ab170ec9815c45a8dcc9a84de2ccf /clang/lib/CodeGen
parentb24a1d29cbebac5d689826a25371368f07a343c0 (diff)
downloadbcm5719-llvm-34f6c6db2625bec1845315e59202d37d3d202d87.tar.gz
bcm5719-llvm-34f6c6db2625bec1845315e59202d37d3d202d87.zip
Hand materialization of temporary expressions when emitting a scalar
expression. Fxies PR10592. llvm-svn: 137086
Diffstat (limited to 'clang/lib/CodeGen')
-rw-r--r--clang/lib/CodeGen/CGExprScalar.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/clang/lib/CodeGen/CGExprScalar.cpp b/clang/lib/CodeGen/CGExprScalar.cpp
index 524d79e131d..4038be27926 100644
--- a/clang/lib/CodeGen/CGExprScalar.cpp
+++ b/clang/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());
}
OpenPOWER on IntegriCloud