jansvoboda11 added a comment. In D155131#4495489 <https://reviews.llvm.org/D155131#4495489>, @benlangmuir wrote:
> Now that it's not eagerly deserialized, should > `Preprocessor::alreadyIncluded` call `HeaderInfo.getFileInfo(File)` to ensure > the information is up to date? It should, but `Preprocessor::alreadyIncluded()` is only called from `HeaderSearch::ShouldEnterIncludeFile()` and `Preprocessor::HandleHeaderIncludeOrImport()`, where `HeaderSearch::getFileInfo(File)` has already been called. But I agree it would be better to ensure that within `Preprocessor::alreadyIncluded()` itself. I'll try to include that in the next revision. > Similarly, we expose the list of files in `Preprocessor::getIncludedFiles` -- > is it okay if this list is incomplete? That should be okay. This function only needs to return files included in the current module compilation, not all transitive includes. ================ Comment at: clang/lib/Serialization/ASTReader.cpp:1947 + if (const FileEntry *FE = getFile(key)) + Reader.getPreprocessor().getIncludedFiles().insert(FE); + ---------------- benlangmuir wrote: > `Reader.getPreprocessor().markIncluded`? That would trigger infinite recursion, since that calls `getFileInfo()` which attempts to deserialize. ================ Comment at: clang/lib/Serialization/ASTWriter.cpp:2545 - raw_svector_ostream Out(Buffer); - writeIncludedFiles(Out, PP); - RecordData::value_type Record[] = {PP_INCLUDED_FILES}; ---------------- benlangmuir wrote: > Can we remove `ASTWriter::writeIncludedFiles` now? Yes, forgot about that, thanks. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D155131/new/ https://reviews.llvm.org/D155131 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits