[clang] [clang-cl] Support the /std:c++23 option (PR #232659)
Hans Wennborg via cfe-commits
cfe-commits at lists.llvm.org
Fri Oct 16 03:00:48 PDT 2026
https://github.com/zmodem created https://github.com/llvm/llvm-project/pull/232659
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/
>From c01ab82c32d83e21f6937477176987ae5956b60a Mon Sep 17 00:00:00 2001
From: Hans Wennborg <hans at chromium.org>
Date: Fri, 16 Oct 2026 11:58:20 +0200
Subject: [PATCH] [clang-cl] Support the /std:c++23 option
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/
---
clang/lib/Driver/ToolChains/Clang.cpp | 3 ++-
clang/test/Driver/cl-options.c | 5 +++--
2 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/clang/lib/Driver/ToolChains/Clang.cpp b/clang/lib/Driver/ToolChains/Clang.cpp
index 26218d85e05e35..45aede75681103 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 2b4d887b027a99..7a71924c3189fb 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
More information about the cfe-commits
mailing list