Skip to content

Commit 58a3529

Browse files
authored
Merge pull request #20 from roystgnr/clang_vtable_fix
Clang+OSX dynamic_cast fix
2 parents c7679d9 + 7e9dd25 commit 58a3529

File tree

1 file changed

+16
-0
lines changed

1 file changed

+16
-0
lines changed

acsm_compiler_flags.m4

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,12 @@ AC_DEFUN([ACSM_DETERMINE_CXX_BRAND],
7272
[clang_vendor="Apple clang"])
7373
7474
AS_CASE("x$ACSM_CLANG_VERSION_STRING",
75+
[*clang\ version\ 20.*], [AC_MSG_RESULT(<<< C++ compiler is clang-20.x >>>)
76+
ACSM_CLANG_VERSION=20],
77+
[*clang\ version\ 19.*], [AC_MSG_RESULT(<<< C++ compiler is clang-19.x >>>)
78+
ACSM_CLANG_VERSION=19],
79+
[*clang\ version\ 18.*], [AC_MSG_RESULT(<<< C++ compiler is clang-18.x >>>)
80+
ACSM_CLANG_VERSION=18],
7581
[*clang\ version\ 17.*], [AC_MSG_RESULT(<<< C++ compiler is clang-17.x >>>)
7682
ACSM_CLANG_VERSION=17],
7783
[*clang\ version\ 16.*], [AC_MSG_RESULT(<<< C++ compiler is clang-16.x >>>)
@@ -620,6 +626,16 @@ AC_DEFUN([ACSM_SET_CXX_FLAGS],
620626
ACSM_CFLAGS_OPT="-O2 -Qunused-arguments -Wunused"
621627
ACSM_CFLAGS_DEVEL="$ACSM_CFLAGS_OPT -g -Wimplicit -fno-limit-debug-info -Wunused"
622628
ACSM_CFLAGS_DBG="-g -Wimplicit -Qunused-arguments -fno-limit-debug-info -Wunused"
629+
630+
dnl This argument appears in clang 17 and
631+
dnl appears to become necessary to safely
632+
dnl dynamic_cast in later clang on OSX
633+
AS_IF([test "x$ACSM_CLANG_VERSION" = "xother" || test $ACSM_CLANG_VERSION -ge 17],
634+
[
635+
ACSM_CXXFLAGS_OPT="$ACSM_CFLAGS_OPT -fno-assume-unique-vtables"
636+
ACSM_CXXFLAGS_DEVEL="$ACSM_CFLAGS_DEVEL -fno-assume-unique-vtables"
637+
ACSM_CXXFLAGS_DBG="$ACSM_CFLAGS_DBG -fno-assume-unique-vtables"
638+
])
623639
],
624640
625641
dnl default case

0 commit comments

Comments
 (0)