Hardened the struct layout code to eliminate a
potential crash if the underlying type couldn't
be completed.
git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@154234 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/source/Expression/ClangASTSource.cpp b/source/Expression/ClangASTSource.cpp
index e1154ef..5461f19 100644
--- a/source/Expression/ClangASTSource.cpp
+++ b/source/Expression/ClangASTSource.cpp
@@ -1183,6 +1183,11 @@
BaseOffsetMap origin_base_offsets;
BaseOffsetMap origin_virtual_base_offsets;
+ ClangASTContext::GetCompleteDecl(&origin_record->getASTContext(), const_cast<RecordDecl*>(origin_record.decl));
+
+ if (!origin_record.decl->getDefinition())
+ return false;
+
const ASTRecordLayout &record_layout(origin_record->getASTContext().getASTRecordLayout(origin_record.decl));
int field_idx = 0;