From 8e79188ca510d5b365724dc4b2582618c02fcfdd Mon Sep 17 00:00:00 2001 From: Lioncash Date: Thu, 9 May 2019 15:49:27 -0400 Subject: [PATCH] CMakeLists: Specify /volatile:iso for MSVC By default, MSVC doesn't use standards-compliant volatile semantics. This makes it behave in a standards-compliant manner, making expectations more uniform across compilers. --- src/CMakeLists.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 00dd419b98..ceef048fce 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -24,6 +24,7 @@ if (MSVC) # /Zo - Enhanced debug info for optimized builds # /permissive- - Enables stricter C++ standards conformance checks # /EHsc - C++-only exception handling semantics + # /volatile:iso - Use strict standards-compliant volatile semantics. # /Zc:externConstexpr - Allow extern constexpr variables to have external linkage, like the standard mandates # /Zc:inline - Let codegen omit inline functions in object files # /Zc:throwingNew - Let codegen assume `operator new` (without std::nothrow) will never return null @@ -35,6 +36,7 @@ if (MSVC) /permissive- /EHsc /std:c++latest + /volatile:iso /Zc:externConstexpr /Zc:inline /Zc:throwingNew