[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