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.
This commit is contained in:
Lioncash 2019-05-09 15:49:27 -04:00 committed by fearlessTobi
parent e860a0ae59
commit 8e79188ca5

View File

@ -24,6 +24,7 @@ if (MSVC)
# /Zo - Enhanced debug info for optimized builds # /Zo - Enhanced debug info for optimized builds
# /permissive- - Enables stricter C++ standards conformance checks # /permissive- - Enables stricter C++ standards conformance checks
# /EHsc - C++-only exception handling semantics # /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:externConstexpr - Allow extern constexpr variables to have external linkage, like the standard mandates
# /Zc:inline - Let codegen omit inline functions in object files # /Zc:inline - Let codegen omit inline functions in object files
# /Zc:throwingNew - Let codegen assume `operator new` (without std::nothrow) will never return null # /Zc:throwingNew - Let codegen assume `operator new` (without std::nothrow) will never return null
@ -35,6 +36,7 @@ if (MSVC)
/permissive- /permissive-
/EHsc /EHsc
/std:c++latest /std:c++latest
/volatile:iso
/Zc:externConstexpr /Zc:externConstexpr
/Zc:inline /Zc:inline
/Zc:throwingNew /Zc:throwingNew