libltdl: Skip sanitization of function for newer clang versions Using a clang version >= 20 finds sanitization issues that the earlier clang version did not find. ltdl.c:189:16: runtime error: call to function preopen_LTX_get_vtable through pointer to incorrect function type 'const lt_dlvtable *(*)(void *)' /home/runner/work/ci-check/ci-check/libtool-2026-08-12/build/tests/testsuite.dir/113/libltdl/loaders/preopen.c:60: note: preopen_LTX_get_vtable defined here SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior ltdl.c:189:16 This is a temporary fix until the function prototype is fixed. * libltdl/ltdl.c: Skip sanitization of function for clang versions that are greater than or equal to 20. * libltdl/ltdl.mk: Bump minor version.
diff --git a/libltdl/ltdl.c b/libltdl/ltdl.c index c92e259..bed91b8 100644 --- a/libltdl/ltdl.c +++ b/libltdl/ltdl.c
@@ -178,6 +178,10 @@ } #endif /* HAVE_LIBDLLOADER */ +// TODO: fix the clang sanitization issue with the function's prototype +#if defined __clang__ && __clang_major__ >= 20 + __attribute__ ((no_sanitize ("function"))) +#endif static int loader_init (lt_get_vtable *vtable_func, lt_user_data data) {
diff --git a/libltdl/ltdl.mk b/libltdl/ltdl.mk index e69e011..d74ed2e 100644 --- a/libltdl/ltdl.mk +++ b/libltdl/ltdl.mk
@@ -35,7 +35,7 @@ -I$(srcdir)/libltdl -Ilibltdl/libltdl \ -I$(srcdir)/libltdl/libltdl AM_LDFLAGS += -no-undefined -LTDL_VERSION_INFO = -version-info 10:6:3 +LTDL_VERSION_INFO = -version-info 10:7:3 noinst_LTLIBRARIES += $(LT_DLLOADERS)