jyknight added a comment. I suspect we also need to support saving/loading some of this information in the serialized AST, e.g. clang/lib/Serialization/ASTWriter.cpp has code to save the HeaderInfo data, around line 1650. And around line 2174, code to save the macros per submodule. We'll also need to save the pragma-once-header-state per-submodule too, I think.
================ Comment at: clang/lib/Lex/HeaderSearch.cpp:1264 + if (FileInfo.isPragmaOnce || FileInfo.isImport){ + if (FileInfo.isModuleHeader && M != nullptr){ + if (PP.isIncludeVisibleInLocalModule(File, M)) return false; ---------------- I don't think whether the header you're trying to include is modular or not (isModuleHeader) should matter here, just whether we have a current module M or not. ================ Comment at: clang/lib/Lex/HeaderSearch.cpp:1266 + if (PP.isIncludeVisibleInLocalModule(File, M)) return false; + else PP.setIncludeVisibleForHeader(File, M); + } else { ---------------- I wonder if this should be just using the CurSubmoduleState. Actually, is "M" even needed in this function at all -- why isn't everything just using CurSubmoduleState? (It's very likely I'm just confused about what the semantics of this are...). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D75951/new/ https://reviews.llvm.org/D75951 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits