diff options
| author | Richard Smith <richard-llvm@metafoo.co.uk> | 2015-09-11 03:58:07 +0000 |
|---|---|---|
| committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2015-09-11 03:58:07 +0000 |
| commit | 7acebe4cf1f69d1723e9ae93dc324b9860de04c0 (patch) | |
| tree | a493be6fc9f4461efceb3fb89e7bb548fbb4991b /clang | |
| parent | 8385ea602d467af5e695fbe30f38bd39a1d0d157 (diff) | |
| download | bcm5719-llvm-7acebe4cf1f69d1723e9ae93dc324b9860de04c0.tar.gz bcm5719-llvm-7acebe4cf1f69d1723e9ae93dc324b9860de04c0.zip | |
[modules] Don't load files specified by -fmodule-file= when modules are
disabled. (We still allow this via -cc1 / -Xclang, primarily for testing.)
llvm-svn: 247384
Diffstat (limited to 'clang')
| -rw-r--r-- | clang/lib/Driver/Tools.cpp | 5 | ||||
| -rw-r--r-- | clang/test/Driver/modules.m | 10 |
2 files changed, 14 insertions, 1 deletions
diff --git a/clang/lib/Driver/Tools.cpp b/clang/lib/Driver/Tools.cpp index 7c859850592..b83f3fa1fce 100644 --- a/clang/lib/Driver/Tools.cpp +++ b/clang/lib/Driver/Tools.cpp @@ -4461,7 +4461,10 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA, Args.AddAllArgs(CmdArgs, options::OPT_fmodule_map_file); // -fmodule-file can be used to specify files containing precompiled modules. - Args.AddAllArgs(CmdArgs, options::OPT_fmodule_file); + if (HaveModules) + Args.AddAllArgs(CmdArgs, options::OPT_fmodule_file); + else + Args.ClaimAllArgs(options::OPT_fmodule_file); // -fmodule-cache-path specifies where our implicitly-built module files // should be written. diff --git a/clang/test/Driver/modules.m b/clang/test/Driver/modules.m index 8a0c8ba4d88..0f2d4d5bb0b 100644 --- a/clang/test/Driver/modules.m +++ b/clang/test/Driver/modules.m @@ -37,3 +37,13 @@ // CHECK-MODULE-MAP-FILES: "-fmodules" // CHECK-MODULE-MAP-FILES: "-fmodule-map-file=foo.map" // CHECK-MODULE-MAP-FILES: "-fmodule-map-file=bar.map" + +// RUN: %clang -fmodules -fmodule-file=foo.pcm -fmodule-file=bar.pcm -### %s 2>&1 | FileCheck -check-prefix=CHECK-MODULE-FILES %s +// CHECK-MODULE-FILES: "-fmodules" +// CHECK-MODULE-FILES: "-fmodule-file=foo.pcm" +// CHECK-MODULE-FILES: "-fmodule-file=bar.pcm" + +// RUN: %clang -fno-modules -fmodule-file=foo.pcm -fmodule-file=bar.pcm -### %s 2>&1 | FileCheck -check-prefix=CHECK-NO-MODULE-FILES %s +// CHECK-NO-MODULE-FILES-NOT: "-fmodules" +// CHECK-NO-MODULE-FILES-NOT: "-fmodule-file=foo.pcm" +// CHECK-NO-MODULE-FILES-NOT: "-fmodule-file=bar.pcm" |

