Author: Hans Wennborg Date: 2021-05-26T16:05:52+02:00 New Revision: a8f75d497daa2684a03909d7c31d5bce11b427e1
URL: https://github.com/llvm/llvm-project/commit/a8f75d497daa2684a03909d7c31d5bce11b427e1 DIFF: https://github.com/llvm/llvm-project/commit/a8f75d497daa2684a03909d7c31d5bce11b427e1.diff LOG: [clang-cl] Add driver support for /std:c++20 and bump /std:c++latest (PR50465) VS 2019 16.11 (just released in Preview) is adding support for the /std:c++20 option and bumping /std:c++latest to "post-c++20". This updates clang-cl to match. Differential revision: https://reviews.llvm.org/D103155 Added: Modified: clang/include/clang/Driver/Options.td clang/lib/Driver/ToolChains/Clang.cpp clang/test/Driver/cl-options.c Removed: ################################################################################ diff --git a/clang/include/clang/Driver/Options.td b/clang/include/clang/Driver/Options.td index b08aac7071dcc..c4fc6463d1058 100644 --- a/clang/include/clang/Driver/Options.td +++ b/clang/include/clang/Driver/Options.td @@ -5934,7 +5934,7 @@ def _SLASH_execution_charset : CLCompileJoined<"execution-charset:">, HelpText<"Set runtime encoding, supports only UTF-8">, Alias<fexec_charset_EQ>; def _SLASH_std : CLCompileJoined<"std:">, - HelpText<"Set language version (c++14,c++17,c++latest,c11,c17)">; + HelpText<"Set language version (c++14,c++17,c++20,c++latest,c11,c17)">; def _SLASH_U : CLJoinedOrSeparate<"U">, HelpText<"Undefine macro">, MetaVarName<"<macro>">, Alias<U>; def _SLASH_validate_charset : CLFlag<"validate-charset">, diff --git a/clang/lib/Driver/ToolChains/Clang.cpp b/clang/lib/Driver/ToolChains/Clang.cpp index 6ded23b316c84..c974c80f1f10e 100644 --- a/clang/lib/Driver/ToolChains/Clang.cpp +++ b/clang/lib/Driver/ToolChains/Clang.cpp @@ -6080,7 +6080,8 @@ 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++20") + .Case("c++20", "-std=c++20") + .Case("c++latest", "-std=c++2b") .Default(""); if (LanguageStandard.empty()) D.Diag(clang::diag::warn_drv_unused_argument) diff --git a/clang/test/Driver/cl-options.c b/clang/test/Driver/cl-options.c index 270eaa33b0d92..da0f0738148b9 100644 --- a/clang/test/Driver/cl-options.c +++ b/clang/test/Driver/cl-options.c @@ -594,8 +594,11 @@ // RUN: %clang_cl -fmsc-version=1900 -TP -std:c++17 -### -- %s 2>&1 | FileCheck -check-prefix=STDCXX17 %s // STDCXX17: -std=c++17 +// RUN: %clang_cl -fmsc-version=1900 -TP -std:c++20 -### -- %s 2>&1 | FileCheck -check-prefix=STDCXX20 %s +// STDCXX20: -std=c++20 + // RUN: %clang_cl -fmsc-version=1900 -TP -std:c++latest -### -- %s 2>&1 | FileCheck -check-prefix=STDCXXLATEST %s -// STDCXXLATEST: -std=c++20 +// STDCXXLATEST: -std=c++2b // RUN: env CL="/Gy" %clang_cl -### -- %s 2>&1 | FileCheck -check-prefix=ENV-CL %s // ENV-CL: "-ffunction-sections" _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits