diff options
author | Douglas Gregor <dgregor@apple.com> | 2009-12-24 18:51:59 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2009-12-24 18:51:59 +0000 |
commit | 363b151ff77e1ce3ecd1d2e13a2a35aa09b55c47 (patch) | |
tree | 914f612f4f116cb2dd7dc8462b89fee04f8e678f /clang/lib/Sema/SemaExprCXX.cpp | |
parent | 5c13090bd46c61af3d8caee342eb9143ae609297 (diff) | |
download | bcm5719-llvm-363b151ff77e1ce3ecd1d2e13a2a35aa09b55c47.tar.gz bcm5719-llvm-363b151ff77e1ce3ecd1d2e13a2a35aa09b55c47.zip |
When transforming CXXExprWithTemporaries and CXXBindTemporaryExpr
expressions (e.g., for template instantiation), just transform the
subexpressions and return those, since the temporary-related nodes
will be implicitly regenerated. Fixes PR5867, but I said that
before...
llvm-svn: 92135
Diffstat (limited to 'clang/lib/Sema/SemaExprCXX.cpp')
-rw-r--r-- | clang/lib/Sema/SemaExprCXX.cpp | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/clang/lib/Sema/SemaExprCXX.cpp b/clang/lib/Sema/SemaExprCXX.cpp index 06f8e7aed88..5f723f92146 100644 --- a/clang/lib/Sema/SemaExprCXX.cpp +++ b/clang/lib/Sema/SemaExprCXX.cpp @@ -2096,6 +2096,8 @@ Sema::OwningExprResult Sema::MaybeBindToTemporary(Expr *E) { if (!Context.getLangOptions().CPlusPlus) return Owned(E); + assert(!isa<CXXBindTemporaryExpr>(E) && "Double-bound temporary?"); + const RecordType *RT = E->getType()->getAs<RecordType>(); if (!RT) return Owned(E); |