summaryrefslogtreecommitdiffstats
path: root/build_settings.cmake
diff options
context:
space:
mode:
authorTor Egge <Tor.Egge@yahooinc.com>2023-09-29 19:03:53 +0200
committerTor Egge <Tor.Egge@yahooinc.com>2023-09-29 19:03:53 +0200
commit3a65fb5baaa04e5212759a1600c537075c8f0f36 (patch)
tree50c5621268da781457c192d13bd245e65289a0d5 /build_settings.cmake
parent13db8a3ad2408aa1b4841b45de01e987b9244f5d (diff)
Disable dynamic_cast optimization that was added in clang 17.
Diffstat (limited to 'build_settings.cmake')
-rw-r--r--build_settings.cmake4
1 files changed, 4 insertions, 0 deletions
diff --git a/build_settings.cmake b/build_settings.cmake
index fc4ba131969..9192f163a9b 100644
--- a/build_settings.cmake
+++ b/build_settings.cmake
@@ -115,6 +115,10 @@ endif()
if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 11.0)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fcoroutines")
endif()
+if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang" AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 17.0)
+ # Turn off dynamic_cast optimization that came with clang 17.0.1
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-assume-unique-vtables")
+endif()
if(CMAKE_HOST_SYSTEM_NAME STREQUAL "Darwin")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DGOOGLE_PROTOBUF_NO_RDTSC")
if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang" AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 15.0)