forked from OSchip/llvm-project
Properly pass modules flags to frontend when using -std=c++20 instead of -std=c++2a.
In passing, also teach the driver to map /std:c++latest to -std=c++20 not -std=c++2a.
This commit is contained in:
parent
8c63df2416
commit
91604949ef
|
@ -5584,7 +5584,7 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
|
|||
LanguageStandard = llvm::StringSwitch<StringRef>(StdArg->getValue())
|
||||
.Case("c++14", "-std=c++14")
|
||||
.Case("c++17", "-std=c++17")
|
||||
.Case("c++latest", "-std=c++2a")
|
||||
.Case("c++latest", "-std=c++20")
|
||||
.Default("");
|
||||
if (LanguageStandard.empty())
|
||||
D.Diag(clang::diag::warn_drv_unused_argument)
|
||||
|
@ -5647,7 +5647,8 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
|
|||
// FIXME: Find a better way to determine whether the language has modules
|
||||
// support by default, or just assume that all languages do.
|
||||
bool HaveModules =
|
||||
Std && (Std->containsValue("c++2a") || Std->containsValue("c++latest"));
|
||||
Std && (Std->containsValue("c++2a") || Std->containsValue("c++20") ||
|
||||
Std->containsValue("c++latest"));
|
||||
RenderModulesOptions(C, D, Args, Input, Output, CmdArgs, HaveModules);
|
||||
|
||||
if (Args.hasFlag(options::OPT_fpch_validate_input_files_content,
|
||||
|
|
|
@ -573,7 +573,7 @@
|
|||
// STDCXX17: -std=c++17
|
||||
|
||||
// RUN: %clang_cl -fmsc-version=1900 -TP -std:c++latest -### -- %s 2>&1 | FileCheck -check-prefix=STDCXXLATEST %s
|
||||
// STDCXXLATEST: -std=c++2a
|
||||
// STDCXXLATEST: -std=c++20
|
||||
|
||||
// RUN: env CL="/Gy" %clang_cl -### -- %s 2>&1 | FileCheck -check-prefix=ENV-CL %s
|
||||
// ENV-CL: "-ffunction-sections"
|
||||
|
|
|
@ -22,6 +22,7 @@
|
|||
// Check use of a .pcm file in another compilation.
|
||||
//
|
||||
// RUN: %clang -std=c++2a -fmodule-file=%t/module.pcm -Dexport= %s -S -o %t/module.o -v 2>&1 | FileCheck %s --check-prefix=CHECK-USE
|
||||
// RUN: %clang -std=c++20 -fmodule-file=%t/module.pcm -Dexport= %s -S -o %t/module.o -v 2>&1 | FileCheck %s --check-prefix=CHECK-USE
|
||||
//
|
||||
// CHECK-USE: -cc1
|
||||
// CHECK-USE-SAME: {{-emit-obj|-S}}
|
||||
|
|
Loading…
Reference in New Issue