diff --git a/compiler-rt/CMakeLists.txt b/compiler-rt/CMakeLists.txt --- a/compiler-rt/CMakeLists.txt +++ b/compiler-rt/CMakeLists.txt @@ -267,7 +267,11 @@ append_string_if(COMPILER_RT_HAS_WX_FLAG /WX CMAKE_C_FLAGS CMAKE_CXX_FLAGS) endif() -append_string_if(COMPILER_RT_HAS_STD_CXX14_FLAG -std=c++14 CMAKE_CXX_FLAGS) +if (COMPILER_RT_HAS_STD_CXX17_FLAG) + string(APPEND CMAKE_CXX_FLAGS " -std=c++17") +elseif(COMPILER_RT_HAS_STD_CXX14_FLAG) + string(APPEND CMAKE_CXX_FLAGS " -std=c++14") +endif() # Emulate C99 and C++11's __func__ for MSVC prior to 2013 CTP. if(NOT COMPILER_RT_HAS_FUNC_SYMBOL) diff --git a/compiler-rt/cmake/config-ix.cmake b/compiler-rt/cmake/config-ix.cmake --- a/compiler-rt/cmake/config-ix.cmake +++ b/compiler-rt/cmake/config-ix.cmake @@ -69,6 +69,7 @@ check_cxx_compiler_flag(-fno-rtti COMPILER_RT_HAS_FNO_RTTI_FLAG) check_cxx_compiler_flag("-Werror -fno-function-sections" COMPILER_RT_HAS_FNO_FUNCTION_SECTIONS_FLAG) check_cxx_compiler_flag(-std=c++14 COMPILER_RT_HAS_STD_CXX14_FLAG) +check_cxx_compiler_flag(-std=c++17 COMPILER_RT_HAS_STD_CXX17_FLAG) # C++17 takes precedence. check_cxx_compiler_flag(-ftls-model=initial-exec COMPILER_RT_HAS_FTLS_MODEL_INITIAL_EXEC) check_cxx_compiler_flag(-fno-lto COMPILER_RT_HAS_FNO_LTO_FLAG) check_cxx_compiler_flag(-fno-profile-generate COMPILER_RT_HAS_FNO_PROFILE_GENERATE_FLAG) @@ -167,7 +168,7 @@ set(VERS_OPTION "-Wl,--version-script,${DUMMY_VERS}") if(COMPILER_RT_HAS_GNU_VERSION_SCRIPT_COMPAT) # Solaris 11.4 ld only supports --version-script with - # -z gnu-version-script-compat. + # -z gnu-version-script-compat. string(APPEND VERS_OPTION " ${VERS_COMPAT_OPTION}") endif() check_linker_flag("${VERS_OPTION}" COMPILER_RT_HAS_VERSION_SCRIPT)