From 2435b7842d6ca4b043efd24b68cc03f0d0fac51e Mon Sep 17 00:00:00 2001 From: Corentin Le Molgat Date: Wed, 17 Oct 2018 15:04:47 +0200 Subject: [PATCH] CMake: Fix alignment conformance error on VS 2017 >= 15.8 (Fix #193) --- CMakeLists.txt | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 9a7e1031b23..9e65d566b9f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -33,7 +33,14 @@ if (MSVC) # /wd4267 conversion from 'size_t' to 'type2' # /wd4800 force value to bool 'true' or 'false' (performance warning) add_compile_options(/W3 /wd4005 /wd4068 /wd4244 /wd4267 /wd4800) - add_definitions(/DNOMINMAX /DWIN32_LEAN_AND_MEAN=1 /D_CRT_SECURE_NO_WARNINGS /D_SCL_SECURE_NO_WARNINGS) + # /D_ENABLE_EXTENDED_ALIGNED_STORAGE Introduced in VS 2017 15.8, before the + # member type would non-conformingly have an alignment of only alignof(max_align_t). + add_definitions( + /DNOMINMAX + /DWIN32_LEAN_AND_MEAN=1 + /D_CRT_SECURE_NO_WARNINGS /D_SCL_SECURE_NO_WARNINGS + /D_ENABLE_EXTENDED_ALIGNED_STORAGE + ) else() set(ABSL_STD_CXX_FLAG "-std=c++11" CACHE STRING "c++ std flag (default: c++11)") endif()