mirror of https://gitee.com/openkylin/qemu.git
build-sys: fix -fsanitize=address check
Since 218bb57dd7
, the -fsanitize=address
check fails with:
config-temp/qemu-conf.c:3:20: error: integer overflow in expression [-Werror=overflow]
return INT32_MIN / -1;
Interestingly, UBSAN check doesn't produce a compile time warning.
Use a test that doesn't have compile time warnings, and make it
specific to UBSAN check.
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-Id: <20180215212552.26997-2-marcandre.lureau@redhat.com>
Reviewed-by: Emilio G. Cota <cota@braap.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
961c47bb8b
commit
b9f44da2f2
|
@ -5316,25 +5316,27 @@ fi
|
|||
##########################################
|
||||
# checks for sanitizers
|
||||
|
||||
# we could use a simple skeleton for flags checks, but this also
|
||||
# detect the static linking issue of ubsan, see also:
|
||||
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84285
|
||||
cat > $TMPC << EOF
|
||||
#include <stdint.h>
|
||||
int main(void) {
|
||||
return INT32_MIN / -1;
|
||||
}
|
||||
EOF
|
||||
|
||||
have_asan=no
|
||||
have_ubsan=no
|
||||
have_asan_iface_h=no
|
||||
have_asan_iface_fiber=no
|
||||
|
||||
if test "$sanitizers" = "yes" ; then
|
||||
write_c_skeleton
|
||||
if compile_prog "$CPU_CFLAGS -Werror -fsanitize=address" ""; then
|
||||
have_asan=yes
|
||||
fi
|
||||
|
||||
# we could use a simple skeleton for flags checks, but this also
|
||||
# detect the static linking issue of ubsan, see also:
|
||||
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84285
|
||||
cat > $TMPC << EOF
|
||||
#include <stdlib.h>
|
||||
int main(void) {
|
||||
void *tmp = malloc(10);
|
||||
return *(int *)(tmp + 2);
|
||||
}
|
||||
EOF
|
||||
if compile_prog "$CPU_CFLAGS -Werror -fsanitize=undefined" ""; then
|
||||
have_ubsan=yes
|
||||
fi
|
||||
|
|
Loading…
Reference in New Issue