diff options
author | Anders Carlsson <andersca@mac.com> | 2009-06-05 15:38:08 +0000 |
---|---|---|
committer | Anders Carlsson <andersca@mac.com> | 2009-06-05 15:38:08 +0000 |
commit | b3d05d6d113d06198d9dbd8c0209e68faffd97ff (patch) | |
tree | 2c42ae1e9de923bd545271303ec389b94ac5a621 /clang/lib/AST | |
parent | 8b9524eede4a4e088c0c48701bec094a6b5a3697 (diff) | |
download | bcm5719-llvm-b3d05d6d113d06198d9dbd8c0209e68faffd97ff.tar.gz bcm5719-llvm-b3d05d6d113d06198d9dbd8c0209e68faffd97ff.zip |
Improvements to CXXExprWithTemporaries in preparation for fixing a bug with default arguments that have temporaries.
llvm-svn: 72944
Diffstat (limited to 'clang/lib/AST')
-rw-r--r-- | clang/lib/AST/ExprCXX.cpp | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/clang/lib/AST/ExprCXX.cpp b/clang/lib/AST/ExprCXX.cpp index 4a15245591e..8fd66a29817 100644 --- a/clang/lib/AST/ExprCXX.cpp +++ b/clang/lib/AST/ExprCXX.cpp @@ -305,10 +305,11 @@ void CXXConstructExpr::Destroy(ASTContext &C) { CXXExprWithTemporaries::CXXExprWithTemporaries(Expr *subexpr, CXXTemporary **temps, - unsigned numtemps) + unsigned numtemps, + bool destroytemps) : Expr(CXXExprWithTemporariesClass, subexpr->getType(), subexpr->isTypeDependent(), subexpr->isValueDependent()), - SubExpr(subexpr), Temps(0), NumTemps(numtemps) { + SubExpr(subexpr), Temps(0), NumTemps(numtemps), DestroyTemps(destroytemps) { if (NumTemps > 0) { Temps = new CXXTemporary*[NumTemps]; for (unsigned i = 0; i < NumTemps; ++i) @@ -319,8 +320,10 @@ CXXExprWithTemporaries::CXXExprWithTemporaries(Expr *subexpr, CXXExprWithTemporaries *CXXExprWithTemporaries::Create(ASTContext &C, Expr *SubExpr, CXXTemporary **Temps, - unsigned NumTemps) { - return new (C) CXXExprWithTemporaries(SubExpr, Temps, NumTemps); + unsigned NumTemps, + bool DestroyTemps) { + return new (C) CXXExprWithTemporaries(SubExpr, Temps, NumTemps, + DestroyTemps); } void CXXExprWithTemporaries::Destroy(ASTContext &C) { |