diff options
| author | Anders Carlsson <andersca@mac.com> | 2009-06-16 03:37:31 +0000 |
|---|---|---|
| committer | Anders Carlsson <andersca@mac.com> | 2009-06-16 03:37:31 +0000 |
| commit | a42ab8f3d5f402f8f08a9f3573e1e0b8ef03ad82 (patch) | |
| tree | 96520a7ca85a6bad348f96262752713e20130469 /clang/lib/Sema/SemaExprCXX.cpp | |
| parent | 14491abe48e94d8f48c5178b8682317c9575a907 (diff) | |
| download | bcm5719-llvm-a42ab8f3d5f402f8f08a9f3573e1e0b8ef03ad82.tar.gz bcm5719-llvm-a42ab8f3d5f402f8f08a9f3573e1e0b8ef03ad82.zip | |
Handle temporaries in default arguments.
llvm-svn: 73462
Diffstat (limited to 'clang/lib/Sema/SemaExprCXX.cpp')
| -rw-r--r-- | clang/lib/Sema/SemaExprCXX.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/clang/lib/Sema/SemaExprCXX.cpp b/clang/lib/Sema/SemaExprCXX.cpp index ed4ac555add..7353efbae7d 100644 --- a/clang/lib/Sema/SemaExprCXX.cpp +++ b/clang/lib/Sema/SemaExprCXX.cpp @@ -1589,7 +1589,7 @@ Expr *Sema::RemoveOutermostTemporaryBinding(Expr *E) { } Expr *Sema::MaybeCreateCXXExprWithTemporaries(Expr *SubExpr, - bool DestroyTemps) { + bool ShouldDestroyTemps) { assert(SubExpr && "sub expression can't be null!"); if (ExprTemporaries.empty()) @@ -1598,7 +1598,7 @@ Expr *Sema::MaybeCreateCXXExprWithTemporaries(Expr *SubExpr, Expr *E = CXXExprWithTemporaries::Create(Context, SubExpr, &ExprTemporaries[0], ExprTemporaries.size(), - DestroyTemps); + ShouldDestroyTemps); ExprTemporaries.clear(); return E; @@ -1607,7 +1607,8 @@ Expr *Sema::MaybeCreateCXXExprWithTemporaries(Expr *SubExpr, Sema::OwningExprResult Sema::ActOnFinishFullExpr(ExprArg Arg) { Expr *FullExpr = Arg.takeAs<Expr>(); if (FullExpr) - FullExpr = MaybeCreateCXXExprWithTemporaries(FullExpr); + FullExpr = MaybeCreateCXXExprWithTemporaries(FullExpr, + /*ShouldDestroyTemps=*/true); return Owned(FullExpr); } |

