Skip to content

Commit 2d28507

Browse files
committed
[Clang][cc1] Support -fno-implicit-module-maps in -cc1.
Gives the last of -f{no-}implicit-module-maps precedence. rdar://58883354
1 parent 9327c60 commit 2d28507

File tree

3 files changed

+6
-2
lines changed

3 files changed

+6
-2
lines changed

clang/include/clang/Driver/Options.td

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1548,7 +1548,7 @@ def fno_merge_all_constants : Flag<["-"], "fno-merge-all-constants">, Group<f_Gr
15481548
def fno_modules : Flag <["-"], "fno-modules">, Group<f_Group>,
15491549
Flags<[DriverOption]>;
15501550
def fno_implicit_module_maps : Flag <["-"], "fno-implicit-module-maps">, Group<f_Group>,
1551-
Flags<[DriverOption]>;
1551+
Flags<[DriverOption, CC1Option]>;
15521552
def fno_module_maps : Flag <["-"], "fno-module-maps">, Alias<fno_implicit_module_maps>;
15531553
def fno_modules_decluse : Flag <["-"], "fno-modules-decluse">, Group<f_Group>,
15541554
Flags<[DriverOption]>;

clang/lib/Frontend/CompilerInvocation.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2226,7 +2226,8 @@ static void ParseHeaderSearchArgs(HeaderSearchOptions &Opts, ArgList &Args,
22262226
Opts.ModulesStrictContextHash = Args.hasArg(OPT_fmodules_strict_context_hash);
22272227
Opts.ModulesValidateDiagnosticOptions =
22282228
!Args.hasArg(OPT_fmodules_disable_diagnostic_validation);
2229-
Opts.ImplicitModuleMaps = Args.hasArg(OPT_fimplicit_module_maps);
2229+
Opts.ImplicitModuleMaps = Args.hasFlag(OPT_fimplicit_module_maps,
2230+
OPT_fno_implicit_module_maps, false);
22302231
Opts.ModuleMapFileHomeIsCwd = Args.hasArg(OPT_fmodule_map_file_home_is_cwd);
22312232
Opts.ModuleCachePruneInterval =
22322233
getLastArgIntValue(Args, OPT_fmodules_prune_interval, 7 * 24 * 60 * 60);
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
11
// RUN: rm -rf %t
22
// RUN: %clang_cc1 -x objective-c -fmodules-cache-path=%t -fmodules -I %S/Inputs/private %s -verify
3+
// RUN: %clang_cc1 -x objective-c -fmodules-cache-path=%t -fmodules \
4+
// RUN: -I %S/Inputs/private %s -verify -fimplicit-module-maps \
5+
// RUN: -fno-implicit-module-maps
36
@import libPrivate1; // expected-error {{not found}}

0 commit comments

Comments
 (0)