forked from OSchip/llvm-project
16 lines
729 B
Diff
16 lines
729 B
Diff
Index: lib/AST/RecordLayoutBuilder.cpp
|
|
===================================================================
|
|
--- lib/AST/RecordLayoutBuilder.cpp (revision 146622)
|
|
+++ lib/AST/RecordLayoutBuilder.cpp (working copy)
|
|
@@ -2062,6 +2062,10 @@
|
|
// as soon as we begin to parse the definition. That definition is
|
|
// not a complete definition (which is what isDefinition() tests)
|
|
// until we *finish* parsing the definition.
|
|
+
|
|
+ if (D->hasExternalLexicalStorage() && !D->getDefinition())
|
|
+ getExternalSource()->CompleteType(const_cast<RecordDecl*>(D));
|
|
+
|
|
D = D->getDefinition();
|
|
assert(D && "Cannot get layout of forward declarations!");
|
|
assert(D->isCompleteDefinition() && "Cannot layout type before complete!");
|