[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