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;