[clang] [clang] Diagnose config_macros before building modules (PR #83641)

Michael Spencer via cfe-commits cfe-commits at lists.llvm.org
Mon Mar 4 14:31:46 PST 2024


================
@@ -2006,6 +2021,11 @@ CompilerInstance::loadModule(SourceLocation ImportLoc,
   if (auto MaybeModule = MM.getCachedModuleLoad(*Path[0].first)) {
     // Use the cached result, which may be nullptr.
     Module = *MaybeModule;
+    // Config macros are already checked before building a module, but they need
+    // to be checked at each import location in case any of the config macros
+    // have a new value at the current `ImportLoc`.
+    if (Module)
+      checkConfigMacros(getPreprocessor(), Module, ImportLoc);
   } else if (ModuleName == getLangOpts().CurrentModule) {
     // This is the module we're building.
     Module = PP->getHeaderSearchInfo().lookupModule(
----------------
Bigcheese wrote:

Yeah, given how `Preprocessor::HandleHeaderIncludeOrImport` works, you will never hit this case.

https://github.com/llvm/llvm-project/pull/83641


More information about the cfe-commits mailing list