summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CGExprCXX.cpp
diff options
context:
space:
mode:
authorFariborz Jahanian <fjahanian@apple.com>2010-10-22 21:01:02 +0000
committerFariborz Jahanian <fjahanian@apple.com>2010-10-22 21:01:02 +0000
commit0196aa28ecf3a289c11548490848db40149075aa (patch)
treeaa57059f874656dc940e4f30ae67425ecd5cd78c /clang/lib/CodeGen/CGExprCXX.cpp
parent3c4f72c9f88a1d3da2fccb6414ae41a4ba9e9807 (diff)
downloadbcm5719-llvm-0196aa28ecf3a289c11548490848db40149075aa.tar.gz
bcm5719-llvm-0196aa28ecf3a289c11548490848db40149075aa.zip
Patch fixes miscompile with non-trivial copy constructors and
statement expressions, //rdar: //8540501 llvm-svn: 117146
Diffstat (limited to 'clang/lib/CodeGen/CGExprCXX.cpp')
-rw-r--r--clang/lib/CodeGen/CGExprCXX.cpp1
1 files changed, 1 insertions, 0 deletions
diff --git a/clang/lib/CodeGen/CGExprCXX.cpp b/clang/lib/CodeGen/CGExprCXX.cpp
index 2a88d339978..3cebfe7f883 100644
--- a/clang/lib/CodeGen/CGExprCXX.cpp
+++ b/clang/lib/CodeGen/CGExprCXX.cpp
@@ -299,6 +299,7 @@ CodeGenFunction::EmitCXXConstructExpr(const CXXConstructExpr *E,
assert(getContext().hasSameUnqualifiedType(E->getType(),
E->getArg(0)->getType()));
if (E->getArg(0)->isTemporaryObject(getContext(), CD->getParent())) {
+ Dest.setCtorExpr(const_cast<CXXConstructExpr*>(E));
EmitAggExpr(E->getArg(0), Dest);
return;
}
OpenPOWER on IntegriCloud