mirror of
https://github.com/php/php-src.git
synced 2026-03-24 00:02:20 +01:00
Merge branch 'PHP-8.2' into PHP-8.3
* PHP-8.2: Disable -fsanitize=function on Clang 17
This commit is contained in:
17
configure.ac
17
configure.ac
@@ -1620,6 +1620,23 @@ if test "$PHP_UNDEFINED_SANITIZER" = "yes"; then
|
||||
CFLAGS="$CFLAGS -fno-sanitize=object-size"
|
||||
CXXFLAGS="$CFLAGS -fno-sanitize=object-size"
|
||||
])
|
||||
|
||||
dnl Clang 17 adds stricter function pointer compatibility checks where pointer args cannot be
|
||||
dnl cast to void*. In that case, set -fno-sanitize=function.
|
||||
OLD_CFLAGS="$CFLAGS"
|
||||
CFLAGS="$CFLAGS -fno-sanitize-recover=undefined"
|
||||
AC_RUN_IFELSE([AC_LANG_SOURCE([[
|
||||
void foo(char *string) {}
|
||||
int main(void) {
|
||||
void (*f)(void *) = (void (*)(void *))foo;
|
||||
f("foo");
|
||||
}
|
||||
]])],,[ubsan_needs_no_function=yes],)
|
||||
CFLAGS="$OLD_CFLAGS"
|
||||
if test "$ubsan_needs_no_function" = yes; then
|
||||
CFLAGS="$CFLAGS -fno-sanitize=function"
|
||||
CXXFLAGS="$CFLAGS -fno-sanitize=function"
|
||||
fi
|
||||
], [AC_MSG_ERROR([UndefinedBehaviorSanitizer is not available])])
|
||||
fi
|
||||
|
||||
|
||||
Reference in New Issue
Block a user