[clang] [clang][modules-driver] Add scanner to detect C++20 module presence (PR #145220)
Michael Spencer via cfe-commits
cfe-commits at lists.llvm.org
Thu Jul 3 13:47:54 PDT 2025
================
@@ -4414,6 +4590,34 @@ void Driver::BuildActions(Compilation &C, DerivedArgList &Args,
handleArguments(C, Args, Inputs, Actions);
+ if (Args.hasFlag(options::OPT_fmodules_driver,
+ options::OPT_fno_modules_driver, false)) {
+ Diags.Report(diag::remark_fmodules_driver_enabled);
+ // TODO: Move the logic for implicitly enabling explicit-module-builds out
+ // of -fmodules-driver once it is no longer experimental.
+ // Currently, this serves diagnostic purposes only.
+ bool UsesCXXModules = hasCXXModuleInputType(Inputs);
+ if (!UsesCXXModules) {
+ const auto ErrOrScanResult = ScanInputsForCXXModuleUsage(Inputs);
+ if (!ErrOrScanResult) {
+ Diags.Report(diag::err_cannot_open_file)
+ << ErrOrScanResult.getError().message();
+ return;
+ }
+ UsesCXXModules = *ErrOrScanResult;
+ }
+ if (UsesCXXModules)
+ BuildExplicitModuleBuildActions(C, Args, Inputs, Actions);
+ return;
+ }
+
+ Driver::BuildDefaultActions(C, Args, Inputs, Actions);
----------------
Bigcheese wrote:
No need to `Driver::` qualify this.
https://github.com/llvm/llvm-project/pull/145220
More information about the cfe-commits
mailing list