mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-01-31 12:41:49 +01:00
Reapplying r256836 with a fix for MSVC 14 support.
Enable more strict standards conformance in MSVC for rvalue casting and string literal type conversion to non-const types. Also enables generation of intrinsics for more functions. Patch by Alexander Riccio llvm-svn: 258687
This commit is contained in:
parent
5131ab0907
commit
aabad88851
@ -371,6 +371,23 @@ if( MSVC )
|
|||||||
|
|
||||||
append("/Zc:inline" CMAKE_C_FLAGS CMAKE_CXX_FLAGS)
|
append("/Zc:inline" CMAKE_C_FLAGS CMAKE_CXX_FLAGS)
|
||||||
|
|
||||||
|
# /Zc:strictStrings is incompatible with VS12's (Visual Studio 2013's)
|
||||||
|
# debug mode headers. Instead of only enabling them in VS2013's debug mode,
|
||||||
|
# we'll just enable them for Visual Studio 2015 (VS 14, MSVC_VERSION 1900)
|
||||||
|
# and up.
|
||||||
|
if (NOT (MSVC_VERSION LESS 1900))
|
||||||
|
# Disable string literal const->non-const type conversion.
|
||||||
|
# "When specified, the compiler requires strict const-qualification
|
||||||
|
# conformance for pointers initialized by using string literals."
|
||||||
|
append("/Zc:strictStrings" CMAKE_C_FLAGS CMAKE_CXX_FLAGS)
|
||||||
|
endif(NOT (MSVC_VERSION LESS 1900))
|
||||||
|
|
||||||
|
# "Generate Intrinsic Functions".
|
||||||
|
append("/Oi" CMAKE_C_FLAGS CMAKE_CXX_FLAGS)
|
||||||
|
|
||||||
|
# "Enforce type conversion rules".
|
||||||
|
append("/Zc:rvalueCast" CMAKE_CXX_FLAGS)
|
||||||
|
|
||||||
if (NOT LLVM_ENABLE_TIMESTAMPS AND CMAKE_CXX_COMPILER_ID MATCHES "Clang")
|
if (NOT LLVM_ENABLE_TIMESTAMPS AND CMAKE_CXX_COMPILER_ID MATCHES "Clang")
|
||||||
# clang-cl and cl by default produce non-deterministic binaries because
|
# clang-cl and cl by default produce non-deterministic binaries because
|
||||||
# link.exe /incremental requires a timestamp in the .obj file. clang-cl
|
# link.exe /incremental requires a timestamp in the .obj file. clang-cl
|
||||||
|
Loading…
x
Reference in New Issue
Block a user