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

Reply via email to