This revision was automatically updated to reflect the committed changes.
Closed by commit rL248571: Eliminate a potential crash in the struct layout 
code with a gracefull fallback (authored by tberghammer).

Changed prior to commit:
  http://reviews.llvm.org/D12963?vs=35084&id=35717#toc

Repository:
  rL LLVM

http://reviews.llvm.org/D12963

Files:
  lldb/trunk/source/Expression/ClangASTSource.cpp

Index: lldb/trunk/source/Expression/ClangASTSource.cpp
===================================================================
--- lldb/trunk/source/Expression/ClangASTSource.cpp
+++ lldb/trunk/source/Expression/ClangASTSource.cpp
@@ -1674,7 +1674,8 @@
 
     ClangASTContext::GetCompleteDecl(&origin_record->getASTContext(), 
const_cast<RecordDecl*>(origin_record.decl));
 
-    if (!origin_record.decl->getDefinition())
+    clang::RecordDecl* definition = origin_record.decl->getDefinition();
+    if (!definition || !definition->isCompleteDefinition())
         return false;
 
     const ASTRecordLayout 
&record_layout(origin_record->getASTContext().getASTRecordLayout(origin_record.decl));


Index: lldb/trunk/source/Expression/ClangASTSource.cpp
===================================================================
--- lldb/trunk/source/Expression/ClangASTSource.cpp
+++ lldb/trunk/source/Expression/ClangASTSource.cpp
@@ -1674,7 +1674,8 @@
 
     ClangASTContext::GetCompleteDecl(&origin_record->getASTContext(), const_cast<RecordDecl*>(origin_record.decl));
 
-    if (!origin_record.decl->getDefinition())
+    clang::RecordDecl* definition = origin_record.decl->getDefinition();
+    if (!definition || !definition->isCompleteDefinition())
         return false;
 
     const ASTRecordLayout &record_layout(origin_record->getASTContext().getASTRecordLayout(origin_record.decl));
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to