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