mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-04 00:03:54 -06:00
tests/tcg: Suppress compiler false-positive warning on sha1.c
GCC versions at least 12 through 15 incorrectly report a warning about code in sha1.c: tests/tcg/multiarch/sha1.c:161:13: warning: ‘SHA1Transform’ reading 64 bytes from a region of size 0 [-Wstringop-overread] 161 | SHA1Transform(context->state, &data[i]); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ This is a piece of stock library code for doing SHA1 which we've simply copied, rather than writing ourselves. The bug has been reported to upstream GCC (about a different library's use of this code): https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106709 For our test case, since this isn't our original code and there isn't actually a bug in it, suppress the incorrect warning rather than trying to modify the code to work around the compiler issue. Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2328 Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-Id: <20250227141343.1675415-1-peter.maydell@linaro.org> [AJB: -Wno-unknown-warning-option for clang's sake] Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Message-Id: <20250304222439.2035603-18-alex.bennee@linaro.org>
This commit is contained in:
parent
874c712dc1
commit
c05aec9d4a
4 changed files with 13 additions and 3 deletions
|
@ -83,7 +83,8 @@ test-aes: CFLAGS += -O -march=armv8-a+aes
|
||||||
test-aes: test-aes-main.c.inc
|
test-aes: test-aes-main.c.inc
|
||||||
|
|
||||||
# Vector SHA1
|
# Vector SHA1
|
||||||
sha1-vector: CFLAGS=-O3
|
# Work around compiler false-positive warning, as we do for the 'sha1' test
|
||||||
|
sha1-vector: CFLAGS=-O3 -Wno-stringop-overread
|
||||||
sha1-vector: sha1.c
|
sha1-vector: sha1.c
|
||||||
$(CC) $(CFLAGS) $(EXTRA_CFLAGS) $< -o $@ $(LDFLAGS)
|
$(CC) $(CFLAGS) $(EXTRA_CFLAGS) $< -o $@ $(LDFLAGS)
|
||||||
run-sha1-vector: sha1-vector run-sha1
|
run-sha1-vector: sha1-vector run-sha1
|
||||||
|
|
|
@ -61,7 +61,8 @@ endif
|
||||||
ARM_TESTS += commpage
|
ARM_TESTS += commpage
|
||||||
|
|
||||||
# Vector SHA1
|
# Vector SHA1
|
||||||
sha1-vector: CFLAGS=-O3
|
# Work around compiler false-positive warning, as we do for the 'sha1' test
|
||||||
|
sha1-vector: CFLAGS=-O3 -Wno-stringop-overread
|
||||||
sha1-vector: sha1.c
|
sha1-vector: sha1.c
|
||||||
$(CC) $(CFLAGS) $(EXTRA_CFLAGS) $< -o $@ $(LDFLAGS)
|
$(CC) $(CFLAGS) $(EXTRA_CFLAGS) $< -o $@ $(LDFLAGS)
|
||||||
run-sha1-vector: sha1-vector run-sha1
|
run-sha1-vector: sha1-vector run-sha1
|
||||||
|
|
|
@ -18,7 +18,7 @@
|
||||||
# Hexagon doesn't support gdb, so skip the EXTRA_RUNS
|
# Hexagon doesn't support gdb, so skip the EXTRA_RUNS
|
||||||
EXTRA_RUNS =
|
EXTRA_RUNS =
|
||||||
|
|
||||||
CFLAGS += -Wno-incompatible-pointer-types -Wno-undefined-internal
|
CFLAGS += -Wno-incompatible-pointer-types -Wno-undefined-internal -Wno-unknown-warning-option
|
||||||
CFLAGS += -fno-unroll-loops -fno-stack-protector
|
CFLAGS += -fno-unroll-loops -fno-stack-protector
|
||||||
|
|
||||||
HEX_SRC=$(SRC_PATH)/tests/tcg/hexagon
|
HEX_SRC=$(SRC_PATH)/tests/tcg/hexagon
|
||||||
|
|
|
@ -45,6 +45,14 @@ vma-pthread: LDFLAGS+=-pthread
|
||||||
sigreturn-sigmask: CFLAGS+=-pthread
|
sigreturn-sigmask: CFLAGS+=-pthread
|
||||||
sigreturn-sigmask: LDFLAGS+=-pthread
|
sigreturn-sigmask: LDFLAGS+=-pthread
|
||||||
|
|
||||||
|
# GCC versions 12/13/14/15 at least incorrectly complain about
|
||||||
|
# "'SHA1Transform' reading 64 bytes from a region of size 0"; see the gcc bug
|
||||||
|
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106709
|
||||||
|
# Since this is just a standard piece of library code we've borrowed for a
|
||||||
|
# TCG test case, suppress the warning rather than trying to modify the
|
||||||
|
# code to work around the compiler.
|
||||||
|
sha1: CFLAGS+=-Wno-stringop-overread
|
||||||
|
|
||||||
# The vma-pthread seems very sensitive on gitlab and we currently
|
# The vma-pthread seems very sensitive on gitlab and we currently
|
||||||
# don't know if its exposing a real bug or the test is flaky.
|
# don't know if its exposing a real bug or the test is flaky.
|
||||||
ifneq ($(GITLAB_CI),)
|
ifneq ($(GITLAB_CI),)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue