Index: lib/CodeGen/CodeGenTypes.cpp =================================================================== --- lib/CodeGen/CodeGenTypes.cpp (revision 146622) +++ lib/CodeGen/CodeGenTypes.cpp (working copy) @@ -113,6 +113,9 @@ static bool isSafeToConvert(const RecordDecl *RD, CodeGenTypes &CGT, llvm::SmallPtrSet &AlreadyChecked) { + if (RD->hasExternalLexicalStorage() && !RD->getDefinition()) + RD->getASTContext().getExternalSource()->CompleteType(const_cast(RD)); + // If we have already checked this type (maybe the same type is used by-value // multiple times in multiple structure fields, don't check again. if (!AlreadyChecked.insert(RD)) return true;