llvm/cmake/modules/HandleLLVMOptions.cmake | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/llvm/cmake/modules/HandleLLVMOptions.cmake b/llvm/cmake/modules/HandleLLVMOptions.cmake index 5ef22eb493ba..3e2f372e80c9 100644 --- a/llvm/cmake/modules/HandleLLVMOptions.cmake +++ b/llvm/cmake/modules/HandleLLVMOptions.cmake @@ -426,6 +426,12 @@ if( MSVC ) 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 @@ -478,6 +484,10 @@ if( MSVC ) endif() endif() endif() + # By default MSVC has a 2^16 limit on the number of sections in an object file, + # but in many objects files need more than that. This flag is to increase the + # number of sections. + append("/bigobj" CMAKE_CXX_FLAGS) endif( MSVC ) # Warnings-as-errors handling for GCC-compatible compilers: