diff options
author | Chuanqi Xu <yedeng.yd@linux.alibaba.com> | 2022-08-01 16:02:27 +0800 |
---|---|---|
committer | Tom Stellard <tstellar@redhat.com> | 2022-08-05 01:15:10 -0700 |
commit | 3d39cecfe183790d67d81577492dbbff78bedc0a (patch) | |
tree | 995a1ce3c70858bbbdf842b3741550cae63d8fd9 | |
parent | bf03788dca951fc5e28a471ef6fdf210c1dd9e09 (diff) |
[C++2b] [Modules] Handle HaveModules with C++2b
Closing https://github.com/llvm/llvm-project/issues/56803. The root
cause for this bug is that we lack a good method to detect the language
mdoe when parsing the command line. There is a FIXME too. Dut to we lack
a good solution now, keep the workaround.
(cherry picked from commit 834a878367f549c58313200ce2c3a0da1a29d842)
-rw-r--r-- | clang/lib/Driver/ToolChains/Clang.cpp | 2 | ||||
-rw-r--r-- | clang/test/Driver/modules-fprebuilt-mdoule-path.cpp | 7 |
2 files changed, 8 insertions, 1 deletions
diff --git a/clang/lib/Driver/ToolChains/Clang.cpp b/clang/lib/Driver/ToolChains/Clang.cpp index a97db90518ac..3587326e0e58 100644 --- a/clang/lib/Driver/ToolChains/Clang.cpp +++ b/clang/lib/Driver/ToolChains/Clang.cpp @@ -6588,7 +6588,7 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA, // support by default, or just assume that all languages do. bool HaveModules = Std && (Std->containsValue("c++2a") || Std->containsValue("c++20") || - Std->containsValue("c++latest")); + Std->containsValue("c++2b") || Std->containsValue("c++latest")); RenderModulesOptions(C, D, Args, Input, Output, CmdArgs, HaveModules); if (Args.hasFlag(options::OPT_fpch_validate_input_files_content, diff --git a/clang/test/Driver/modules-fprebuilt-mdoule-path.cpp b/clang/test/Driver/modules-fprebuilt-mdoule-path.cpp new file mode 100644 index 000000000000..a2c830bfda00 --- /dev/null +++ b/clang/test/Driver/modules-fprebuilt-mdoule-path.cpp @@ -0,0 +1,7 @@ +// RUN: %clang -std=c++2a -fprebuilt-module-path=. -### -c %s 2>&1 | FileCheck %s +// RUN: %clang -std=c++20 -fprebuilt-module-path=. -### -c %s 2>&1 | FileCheck %s +// RUN: %clang -std=c++2b -fprebuilt-module-path=. -### -c %s 2>&1 | FileCheck %s +// RUN: %clang -std=c++latest -fprebuilt-module-path=. -### -c %s 2>&1 | FileCheck %s +// +// CHECK-NOT: warning: argument unused during compilation +// CHECK: -fprebuilt-module-path=. |