[cfe-commits] r110901 - /cfe/trunk/lib/Sema/SemaExprCXX.cpp
John McCall
rjmccall at apple.com
Wed Aug 11 19:40:37 PDT 2010
Author: rjmccall
Date: Wed Aug 11 21:40:37 2010
New Revision: 110901
URL: http://llvm.org/viewvc/llvm-project?rev=110901&view=rev
Log:
Bail out of MaybeBindToTemporary if the record type is invalid. Test case
is 8.5MB, sorry.
Modified:
cfe/trunk/lib/Sema/SemaExprCXX.cpp
Modified: cfe/trunk/lib/Sema/SemaExprCXX.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaExprCXX.cpp?rev=110901&r1=110900&r2=110901&view=diff
==============================================================================
--- cfe/trunk/lib/Sema/SemaExprCXX.cpp (original)
+++ cfe/trunk/lib/Sema/SemaExprCXX.cpp Wed Aug 11 21:40:37 2010
@@ -2619,7 +2619,7 @@
// 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));
More information about the cfe-commits
mailing list