summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema
diff options
context:
space:
mode:
authorChandler Carruth <chandlerc@gmail.com>2010-03-31 18:34:58 +0000
committerChandler Carruth <chandlerc@gmail.com>2010-03-31 18:34:58 +0000
commitb32b344c8f8194e5b38113c4ed0ab8098c1e4188 (patch)
treed60ee28fd90804b2407168a00211ae5d77251b68 /clang/lib/Sema
parentc1fb862fda6091abdce88ad334ebd55021b8b203 (diff)
downloadbcm5719-llvm-b32b344c8f8194e5b38113c4ed0ab8098c1e4188.tar.gz
bcm5719-llvm-b32b344c8f8194e5b38113c4ed0ab8098c1e4188.zip
Re-bind non-dependent CXXTemporaryObjectExpr nodes as temporaries when
instantiating a template, which ensures the destructor is called. This fixes PR6671. llvm-svn: 100029
Diffstat (limited to 'clang/lib/Sema')
-rw-r--r--clang/lib/Sema/TreeTransform.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/clang/lib/Sema/TreeTransform.h b/clang/lib/Sema/TreeTransform.h
index 5d3f21e4e8c..361ab2e78c9 100644
--- a/clang/lib/Sema/TreeTransform.h
+++ b/clang/lib/Sema/TreeTransform.h
@@ -5134,7 +5134,7 @@ TreeTransform<Derived>::TransformCXXTemporaryObjectExpr(
!ArgumentChanged) {
// FIXME: Instantiation-specific
SemaRef.MarkDeclarationReferenced(E->getTypeBeginLoc(), Constructor);
- return SemaRef.Owned(E->Retain());
+ return SemaRef.MaybeBindToTemporary(E->Retain());
}
// FIXME: Bogus location information
OpenPOWER on IntegriCloud