thakis created this revision. thakis added a reviewer: hans. thakis requested review of this revision.
MSVC says this should be 202002L for /std:c++20, and of VS16.11 that's indeed the case (older versions warn that they don't understand /std:c++20, and then cl.exe defaults to C++14 and sets _MSVC_LANG to 201402 accordingly). https://reviews.llvm.org/D114867 Files: clang/lib/Basic/Targets/OSTargets.cpp clang/test/Preprocessor/predefined-win-macros.c Index: clang/test/Preprocessor/predefined-win-macros.c =================================================================== --- clang/test/Preprocessor/predefined-win-macros.c +++ clang/test/Preprocessor/predefined-win-macros.c @@ -45,9 +45,9 @@ // 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++2a -o - | FileCheck -match-full-lines %s --check-prefix=CHECK-MS-CPP2A +// 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 201705L +// CHECK-MS-CPP2A: #define _MSVC_LANG 202002L // RUN: %clang_cc1 -triple i386-windows %s -E -dM -o - \ // RUN: | FileCheck -match-full-lines %s --check-prefix=CHECK-X86-WIN Index: clang/lib/Basic/Targets/OSTargets.cpp =================================================================== --- clang/lib/Basic/Targets/OSTargets.cpp +++ clang/lib/Basic/Targets/OSTargets.cpp @@ -182,7 +182,7 @@ if (Opts.isCompatibleWithMSVC(LangOptions::MSVC2015)) { if (Opts.CPlusPlus20) - Builder.defineMacro("_MSVC_LANG", "201705L"); + Builder.defineMacro("_MSVC_LANG", "202002L"); else if (Opts.CPlusPlus17) Builder.defineMacro("_MSVC_LANG", "201703L"); else if (Opts.CPlusPlus14)
Index: clang/test/Preprocessor/predefined-win-macros.c =================================================================== --- clang/test/Preprocessor/predefined-win-macros.c +++ clang/test/Preprocessor/predefined-win-macros.c @@ -45,9 +45,9 @@ // 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++2a -o - | FileCheck -match-full-lines %s --check-prefix=CHECK-MS-CPP2A +// 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 201705L +// CHECK-MS-CPP2A: #define _MSVC_LANG 202002L // RUN: %clang_cc1 -triple i386-windows %s -E -dM -o - \ // RUN: | FileCheck -match-full-lines %s --check-prefix=CHECK-X86-WIN Index: clang/lib/Basic/Targets/OSTargets.cpp =================================================================== --- clang/lib/Basic/Targets/OSTargets.cpp +++ clang/lib/Basic/Targets/OSTargets.cpp @@ -182,7 +182,7 @@ if (Opts.isCompatibleWithMSVC(LangOptions::MSVC2015)) { if (Opts.CPlusPlus20) - Builder.defineMacro("_MSVC_LANG", "201705L"); + Builder.defineMacro("_MSVC_LANG", "202002L"); else if (Opts.CPlusPlus17) Builder.defineMacro("_MSVC_LANG", "201703L"); else if (Opts.CPlusPlus14)
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits