diff options
Diffstat (limited to 'clang/lib/Serialization/ASTWriterDecl.cpp')
-rw-r--r-- | clang/lib/Serialization/ASTWriterDecl.cpp | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/clang/lib/Serialization/ASTWriterDecl.cpp b/clang/lib/Serialization/ASTWriterDecl.cpp index 89f9b4885fa..5d5e4bb428f 100644 --- a/clang/lib/Serialization/ASTWriterDecl.cpp +++ b/clang/lib/Serialization/ASTWriterDecl.cpp @@ -1817,8 +1817,10 @@ static bool isRequiredDecl(const Decl *D, ASTContext &Context) { // An ObjCMethodDecl is never considered as "required" because its // implementation container always is. - // File scoped assembly or obj-c implementation must be seen. - if (isa<FileScopeAsmDecl>(D) || isa<ObjCImplDecl>(D)) + // File scoped assembly or obj-c implementation must be seen. ImportDecl is + // used by codegen to determine the set of imported modules to search for + // inputs for automatic linking. + if (isa<FileScopeAsmDecl>(D) || isa<ObjCImplDecl>(D) || isa<ImportDecl>(D)) return true; return Context.DeclMustBeEmitted(D); @@ -1906,10 +1908,8 @@ void ASTWriter::WriteDecl(ASTContext &Context, Decl *D) { // Flush C++ base specifiers, if there are any. FlushCXXBaseSpecifiers(); - // Note "external" declarations so that we can add them to a record in the - // AST file later. - // - // FIXME: This should be renamed, the predicate is much more complicated. + // Note declarations that should be deserialized eagerly so that we can add + // them to a record in the AST file later. if (isRequiredDecl(D, Context)) - ExternalDefinitions.push_back(ID); + EagerlyDeserializedDecls.push_back(ID); } |