Revert "[driver] Additional ignoring of module-map related flags, if modules are disabled"

This reverts commit 33162a81d4.

This change breaks the usage of module maps with modules disabled, such
as for layering checking via `-fmodules-decluse`.

Regression test added.
This commit is contained in:
Richard Smith 2022-08-30 18:20:51 -07:00
parent b9f7678846
commit 146ae4138a
2 changed files with 21 additions and 25 deletions

View File

@ -3726,29 +3726,25 @@ static void RenderModulesOptions(Compilation &C, const Driver &D,
options::OPT_fno_modules_validate_input_files_content,
false))
CmdArgs.push_back("-fvalidate-ast-input-files-content");
}
// -fmodule-name specifies the module that is currently being built (or
// used for header checking by -fmodule-maps).
Args.AddLastArg(CmdArgs, options::OPT_fmodule_name_EQ);
// -fmodule-name specifies the module that is currently being built (or
// used for header checking by -fmodule-maps).
Args.AddLastArg(CmdArgs, options::OPT_fmodule_name_EQ);
// -fmodule-map-file can be used to specify files containing module
// definitions.
Args.AddAllArgs(CmdArgs, options::OPT_fmodule_map_file);
// -fmodule-map-file can be used to specify files containing module
// definitions.
Args.AddAllArgs(CmdArgs, options::OPT_fmodule_map_file);
// -fbuiltin-module-map can be used to load the clang
// builtin headers modulemap file.
if (Args.hasArg(options::OPT_fbuiltin_module_map)) {
SmallString<128> BuiltinModuleMap(D.ResourceDir);
llvm::sys::path::append(BuiltinModuleMap, "include");
llvm::sys::path::append(BuiltinModuleMap, "module.modulemap");
if (llvm::sys::fs::exists(BuiltinModuleMap))
CmdArgs.push_back(
Args.MakeArgString("-fmodule-map-file=" + BuiltinModuleMap));
}
} else {
Args.ClaimAllArgs(options::OPT_fmodule_name_EQ);
Args.ClaimAllArgs(options::OPT_fmodule_map_file);
Args.ClaimAllArgs(options::OPT_fbuiltin_module_map);
// -fbuiltin-module-map can be used to load the clang
// builtin headers modulemap file.
if (Args.hasArg(options::OPT_fbuiltin_module_map)) {
SmallString<128> BuiltinModuleMap(D.ResourceDir);
llvm::sys::path::append(BuiltinModuleMap, "include");
llvm::sys::path::append(BuiltinModuleMap, "module.modulemap");
if (llvm::sys::fs::exists(BuiltinModuleMap))
CmdArgs.push_back(
Args.MakeArgString("-fmodule-map-file=" + BuiltinModuleMap));
}
// The -fmodule-file=<name>=<file> form specifies the mapping of module

View File

@ -75,8 +75,8 @@
// RUN: %clang -fno-modules -fbuild-session-timestamp=123 -### %s 2>&1 | FileCheck -check-prefix=SESSION_FLAG %s
// SESSION_FLAG-NOT: -fbuild-session-timestamp
// RUN: %clang -fno-modules -fmodules-validate-once-per-build-session -fmodules-validate-system-headers -fmodule-map-file=module.modulemap \
// RUN: -### %s 2>&1 | FileCheck -check-prefix=IGNORED_FLAGS %s
// IGNORED_FLAGS-NOT: -fmodules-validate-once-per-build-session
// IGNORED_FLAGS-NOT: -fmodules-validate-system-headers
// IGNORED_FLAGS-NOT: -fmodule-map-file
// RUN: %clang -fno-modules -fmodules-validate-once-per-build-session -### %s 2>&1 | FileCheck -check-prefix=VALIDATE_ONCE_FLAG %s
// VALIDATE_ONCE_FLAG-NOT: -fmodules-validate-once-per-build-session
// RUN: %clang -fno-modules -fmodules-validate-system-headers -### %s 2>&1 | FileCheck -check-prefix=VALIDATE_SYSTEM_FLAG %s
// VALIDATE_SYSTEM_FLAG-NOT: -fmodules-validate-system-headers