[PATCH] D84023: Make MSVC generate appropriate __cplusplus macro definition
Tatyana Krasnukha via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Aug 3 02:53:23 PDT 2020
This revision was automatically updated to reflect the committed changes.
Closed by commit rGc3339e3e921c: [cmake] Make MSVC generate appropriate __cplusplus macro definition (authored by tatyana-krasnukha).
Changed prior to commit:
https://reviews.llvm.org/D84023?vs=279169&id=282555#toc
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D84023/new/
https://reviews.llvm.org/D84023
Files:
llvm/cmake/modules/AddLLVM.cmake
llvm/cmake/modules/HandleLLVMOptions.cmake
llvm/utils/unittest/CMakeLists.txt
Index: llvm/utils/unittest/CMakeLists.txt
===================================================================
--- llvm/utils/unittest/CMakeLists.txt
+++ llvm/utils/unittest/CMakeLists.txt
@@ -19,11 +19,6 @@
googlemock
)
-# LLVM requires C++11 but gtest doesn't correctly detect the availability
-# of C++11 on MSVC, so we force it on.
-add_definitions(-DGTEST_LANG_CXX11=1)
-add_definitions(-DGTEST_HAS_TR1_TUPLE=0)
-
if(WIN32)
add_definitions(-DGTEST_OS_WINDOWS=1)
endif()
Index: llvm/cmake/modules/HandleLLVMOptions.cmake
===================================================================
--- llvm/cmake/modules/HandleLLVMOptions.cmake
+++ llvm/cmake/modules/HandleLLVMOptions.cmake
@@ -421,6 +421,12 @@
append("/Zc:inline" CMAKE_C_FLAGS CMAKE_CXX_FLAGS)
+ # Some projects use the __cplusplus preprocessor macro to check support for
+ # a particular version of the C++ standard. When this option is not specified
+ # explicitly, macro's value is "199711L" that implies C++98 Standard.
+ # https://devblogs.microsoft.com/cppblog/msvc-now-correctly-reports-__cplusplus/
+ append("/Zc:__cplusplus" CMAKE_CXX_FLAGS)
+
# Allow users to request PDBs in release mode. CMake offeres the
# RelWithDebInfo configuration, but it uses different optimization settings
# (/Ob1 vs /Ob2 or -O2 vs -O3). LLVM provides this flag so that users can get
Index: llvm/cmake/modules/AddLLVM.cmake
===================================================================
--- llvm/cmake/modules/AddLLVM.cmake
+++ llvm/cmake/modules/AddLLVM.cmake
@@ -1405,13 +1405,6 @@
set(EXCLUDE_FROM_ALL ON)
endif()
- # Our current version of gtest does not properly recognize C++11 support
- # with MSVC, so it falls back to tr1 / experimental classes. Since LLVM
- # itself requires C++11, we can safely force it on unconditionally so that
- # we don't have to fight with the buggy gtest check.
- add_definitions(-DGTEST_LANG_CXX11=1)
- add_definitions(-DGTEST_HAS_TR1_TUPLE=0)
-
include_directories(${LLVM_MAIN_SRC_DIR}/utils/unittest/googletest/include)
include_directories(${LLVM_MAIN_SRC_DIR}/utils/unittest/googlemock/include)
if (NOT LLVM_ENABLE_THREADS)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D84023.282555.patch
Type: text/x-patch
Size: 2181 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200803/ed71f827/attachment.bin>
More information about the llvm-commits
mailing list