[clang] [clang-cl] Support the /std:c++23 option (PR #232659)
via cfe-commits
cfe-commits at lists.llvm.org
Fri Oct 16 03:01:32 PDT 2026
llvmorg-github-actions[bot] wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-clang-driver
Author: Hans Wennborg (zmodem)
<details>
<summary>Changes</summary>
The latest MSVC build tools release candidate [1] supports /std:c++23 in addition to the old /std:c++23preview option (which they have now deprecated).
[1] https://devblogs.microsoft.com/cppblog/msvc-build-tools-version-14-52-release-candidate-now-available/
---
Full diff: https://github.com/llvm/llvm-project/pull/232659.diff
2 Files Affected:
- (modified) clang/lib/Driver/ToolChains/Clang.cpp (+2-1)
- (modified) clang/test/Driver/cl-options.c (+3-2)
``````````diff
diff --git a/clang/lib/Driver/ToolChains/Clang.cpp b/clang/lib/Driver/ToolChains/Clang.cpp
index 26218d85e05e3..45aede7568110 100644
--- a/clang/lib/Driver/ToolChains/Clang.cpp
+++ b/clang/lib/Driver/ToolChains/Clang.cpp
@@ -7794,12 +7794,13 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
.Case("c++14", "-std=c++14")
.Case("c++17", "-std=c++17")
.Case("c++20", "-std=c++20")
+ .Case("c++23", "-std=c++23")
// If you add cases below for spellings that are
// not in LangStandards.def, update
// TransferableCommand::tryParseStdArg() in
// lib/Tooling/InterpolatingCompilationDatabase.cpp
// to match.
- // TODO add c++23, c++26, c++29 when MSVC supports
+ // TODO add c++26, c++29 when MSVC supports
// it.
.Case("c++23preview", "-std=c++23")
.Case("c++26preview", "-std=c++26")
diff --git a/clang/test/Driver/cl-options.c b/clang/test/Driver/cl-options.c
index 2b4d887b027a9..7a71924c3189f 100644
--- a/clang/test/Driver/cl-options.c
+++ b/clang/test/Driver/cl-options.c
@@ -622,8 +622,9 @@
// 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++23preview -### -- %s 2>&1 | FileCheck -check-prefix=STDCXX23PREVIEW %s
-// STDCXX23PREVIEW: -std=c++23
+// RUN: %clang_cl -fmsc-version=1900 -TP -std:c++23 -### -- %s 2>&1 | FileCheck -check-prefix=STDCXX23 %s
+// RUN: %clang_cl -fmsc-version=1900 -TP -std:c++23preview -### -- %s 2>&1 | FileCheck -check-prefix=STDCXX23 %s
+// STDCXX23: -std=c++23
// RUN: %clang_cl -fmsc-version=1900 -TP -std:c++26preview -### -- %s 2>&1 | FileCheck -check-prefix=STDCXX26PREVIEW %s
// STDCXX26PREVIEW: -std=c++26
``````````
</details>
https://github.com/llvm/llvm-project/pull/232659
More information about the cfe-commits
mailing list