diff options
| author | Fariborz Jahanian <fjahanian@apple.com> | 2009-08-06 19:12:38 +0000 |
|---|---|---|
| committer | Fariborz Jahanian <fjahanian@apple.com> | 2009-08-06 19:12:38 +0000 |
| commit | 001309371e199f0c5f3931b80f67309dcd157848 (patch) | |
| tree | b6d4bccd47e351295b4aa93a4ceecf62af103220 /clang/lib/Sema/SemaExprCXX.cpp | |
| parent | 0127031c20ddd202b5ec43eb951965f0c489b2cb (diff) | |
| download | bcm5719-llvm-001309371e199f0c5f3931b80f67309dcd157848.tar.gz bcm5719-llvm-001309371e199f0c5f3931b80f67309dcd157848.zip | |
Set and use Elidable in elimination of copy ctors.
llvm-svn: 78331
Diffstat (limited to 'clang/lib/Sema/SemaExprCXX.cpp')
| -rw-r--r-- | clang/lib/Sema/SemaExprCXX.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/clang/lib/Sema/SemaExprCXX.cpp b/clang/lib/Sema/SemaExprCXX.cpp index 7e0422e432b..5b749381910 100644 --- a/clang/lib/Sema/SemaExprCXX.cpp +++ b/clang/lib/Sema/SemaExprCXX.cpp @@ -911,8 +911,10 @@ Sema::PerformImplicitConversion(Expr *&From, QualType ToType, assert(!ToType->isReferenceType()); // FIXME: Keep track of whether the copy constructor is elidable or not. - From = BuildCXXConstructExpr(Context, - ToType, SCS.CopyConstructor, false, &From, 1); + bool Elidable = (isa<CallExpr>(From) || + isa<CXXTemporaryObjectExpr>(From)); + From = BuildCXXConstructExpr(Context, ToType, + SCS.CopyConstructor, Elidable, &From, 1); return false; } |

