Author: Nico Weber Date: 2021-12-02T12:09:20-05:00 New Revision: 2a2b3a3e3df7b89e18be9ffab1e08d7ca578cf57
URL: https://github.com/llvm/llvm-project/commit/2a2b3a3e3df7b89e18be9ffab1e08d7ca578cf57 DIFF: https://github.com/llvm/llvm-project/commit/2a2b3a3e3df7b89e18be9ffab1e08d7ca578cf57.diff LOG: [clang-cl] Define _MSVC_LANG for -std=c++2b This matches the value that msvc v19.29 VS16.11 uses for _MSVC_LANG with /std:c++latest. Differential Revision: https://reviews.llvm.org/D114952 Added: Modified: clang/lib/Basic/Targets/OSTargets.cpp clang/test/Preprocessor/predefined-win-macros.c Removed: ################################################################################ diff --git a/clang/lib/Basic/Targets/OSTargets.cpp b/clang/lib/Basic/Targets/OSTargets.cpp index abf46fcb61a5d..53748bf067cd2 100644 --- a/clang/lib/Basic/Targets/OSTargets.cpp +++ b/clang/lib/Basic/Targets/OSTargets.cpp @@ -181,7 +181,9 @@ static void addVisualCDefines(const LangOptions &Opts, MacroBuilder &Builder) { Builder.defineMacro("_HAS_CHAR16_T_LANGUAGE_SUPPORT", Twine(1)); if (Opts.isCompatibleWithMSVC(LangOptions::MSVC2015)) { - if (Opts.CPlusPlus20) + if (Opts.CPlusPlus2b) + Builder.defineMacro("_MSVC_LANG", "202004L"); + else if (Opts.CPlusPlus20) Builder.defineMacro("_MSVC_LANG", "202002L"); else if (Opts.CPlusPlus17) Builder.defineMacro("_MSVC_LANG", "201703L"); diff --git a/clang/test/Preprocessor/predefined-win-macros.c b/clang/test/Preprocessor/predefined-win-macros.c index 2ded133d271bc..df43ae59cef42 100644 --- a/clang/test/Preprocessor/predefined-win-macros.c +++ b/clang/test/Preprocessor/predefined-win-macros.c @@ -45,9 +45,14 @@ // CHECK-MS-NOT: GXX // RUN: %clang_cc1 %s -x c++ -E -dM -triple i686-pc-win32 -fms-extensions -fms-compatibility \ -// RUN: -fms-compatibility-version=19.00 -std=c++20 -o - | FileCheck -match-full-lines %s --check-prefix=CHECK-MS-CPP2A -// CHECK-MS-CPP2A: #define _MSC_VER 1900 -// CHECK-MS-CPP2A: #define _MSVC_LANG 202002L +// RUN: -fms-compatibility-version=19.00 -std=c++20 -o - | FileCheck -match-full-lines %s --check-prefix=CHECK-MS-CPP20 +// CHECK-MS-CPP20: #define _MSC_VER 1900 +// CHECK-MS-CPP20: #define _MSVC_LANG 202002L + +// RUN: %clang_cc1 %s -x c++ -E -dM -triple i686-pc-win32 -fms-extensions -fms-compatibility \ +// RUN: -fms-compatibility-version=19.00 -std=c++2b -o - | FileCheck -match-full-lines %s --check-prefix=CHECK-MS-CPP2B +// CHECK-MS-CPP2B: #define _MSC_VER 1900 +// CHECK-MS-CPP2B: #define _MSVC_LANG 202004L // RUN: %clang_cc1 -triple i386-windows %s -E -dM -o - \ // RUN: | FileCheck -match-full-lines %s --check-prefix=CHECK-X86-WIN _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits