diff options
| author | John McCall <rjmccall@apple.com> | 2010-08-12 02:40:37 +0000 |
|---|---|---|
| committer | John McCall <rjmccall@apple.com> | 2010-08-12 02:40:37 +0000 |
| commit | bdb989eca4dcf1e50dc5b151b861b7dcd4684390 (patch) | |
| tree | 6b507486477c02150b536c96e3a5d516fc2f6312 /clang/lib | |
| parent | 398dc37d1f52788b2cd9835bd2e51458d579045d (diff) | |
| download | bcm5719-llvm-bdb989eca4dcf1e50dc5b151b861b7dcd4684390.tar.gz bcm5719-llvm-bdb989eca4dcf1e50dc5b151b861b7dcd4684390.zip | |
Bail out of MaybeBindToTemporary if the record type is invalid. Test case
is 8.5MB, sorry.
llvm-svn: 110901
Diffstat (limited to 'clang/lib')
| -rw-r--r-- | clang/lib/Sema/SemaExprCXX.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/clang/lib/Sema/SemaExprCXX.cpp b/clang/lib/Sema/SemaExprCXX.cpp index 14f4cd10e7f..5e43574e009 100644 --- a/clang/lib/Sema/SemaExprCXX.cpp +++ b/clang/lib/Sema/SemaExprCXX.cpp @@ -2619,7 +2619,7 @@ Sema::OwningExprResult Sema::MaybeBindToTemporary(Expr *E) { // That should be enough to guarantee that this type is complete. // If it has a trivial destructor, we can avoid the extra copy. CXXRecordDecl *RD = cast<CXXRecordDecl>(RT->getDecl()); - if (RD->hasTrivialDestructor()) + if (RD->isInvalidDecl() || RD->hasTrivialDestructor()) return Owned(E); CXXTemporary *Temp = CXXTemporary::Create(Context, LookupDestructor(RD)); |

