qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Alex Bennée" <alex.bennee@linaro.org>
To: qemu-devel@nongnu.org
Cc: "Peter Maydell" <peter.maydell@linaro.org>,
	"Richard Henderson" <richard.henderson@linaro.org>,
	"Alex Bennée" <alex.bennee@linaro.org>,
	"Brian Cain" <brian.cain@oss.qualcomm.com>,
	qemu-arm@nongnu.org (open list:ARM TCG CPUs)
Subject: [PULL 17/31] tests/tcg: Suppress compiler false-positive warning on sha1.c
Date: Sat,  8 Mar 2025 21:53:12 +0000	[thread overview]
Message-ID: <20250308215326.2907828-18-alex.bennee@linaro.org> (raw)
In-Reply-To: <20250308215326.2907828-1-alex.bennee@linaro.org>

From: Peter Maydell <peter.maydell@linaro.org>

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>

diff --git a/tests/tcg/aarch64/Makefile.target b/tests/tcg/aarch64/Makefile.target
index 9efe2f81ad..16ddcf4f88 100644
--- a/tests/tcg/aarch64/Makefile.target
+++ b/tests/tcg/aarch64/Makefile.target
@@ -83,7 +83,8 @@ test-aes: CFLAGS += -O -march=armv8-a+aes
 test-aes: test-aes-main.c.inc
 
 # 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
 	$(CC) $(CFLAGS) $(EXTRA_CFLAGS) $< -o $@ $(LDFLAGS)
 run-sha1-vector: sha1-vector run-sha1
diff --git a/tests/tcg/arm/Makefile.target b/tests/tcg/arm/Makefile.target
index 99a953b667..6189d7a0e2 100644
--- a/tests/tcg/arm/Makefile.target
+++ b/tests/tcg/arm/Makefile.target
@@ -61,7 +61,8 @@ endif
 ARM_TESTS += commpage
 
 # 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
 	$(CC) $(CFLAGS) $(EXTRA_CFLAGS) $< -o $@ $(LDFLAGS)
 run-sha1-vector: sha1-vector run-sha1
diff --git a/tests/tcg/hexagon/Makefile.target b/tests/tcg/hexagon/Makefile.target
index e5182c01d8..4dfc39bc98 100644
--- a/tests/tcg/hexagon/Makefile.target
+++ b/tests/tcg/hexagon/Makefile.target
@@ -18,7 +18,7 @@
 # Hexagon doesn't support gdb, so skip the 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
 
 HEX_SRC=$(SRC_PATH)/tests/tcg/hexagon
diff --git a/tests/tcg/multiarch/Makefile.target b/tests/tcg/multiarch/Makefile.target
index 688a6be203..c769a7d69d 100644
--- a/tests/tcg/multiarch/Makefile.target
+++ b/tests/tcg/multiarch/Makefile.target
@@ -45,6 +45,14 @@ vma-pthread: LDFLAGS+=-pthread
 sigreturn-sigmask: CFLAGS+=-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
 # don't know if its exposing a real bug or the test is flaky.
 ifneq ($(GITLAB_CI),)
-- 
2.39.5



  parent reply	other threads:[~2025-03-08 21:56 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-03-08 21:52 [PULL 00/31] testing, plugin and maintainer updates Alex Bennée
2025-03-08 21:52 ` [PULL 01/31] tests/functional: move aarch64 GPU test into own file Alex Bennée
2025-03-08 21:52 ` [PULL 02/31] tests/functional: factor out common code in gpu test Alex Bennée
2025-03-08 21:52 ` [PULL 03/31] tests/functional: ensure we have a GPU device for tests Alex Bennée
2025-03-08 21:52 ` [PULL 04/31] tests/functional: bail early if vkmark hangs Alex Bennée
2025-03-08 21:53 ` [PULL 05/31] tests/functional: skip vulkan tests with nVidia Alex Bennée
2025-03-08 21:53 ` [PULL 06/31] tests/functional: expand tests to cover virgl Alex Bennée
2025-03-08 21:53 ` [PULL 07/31] tests/functional: update the aarch64_virg_gpu images Alex Bennée
2025-03-08 21:53 ` [PULL 08/31] plugins: add explicit dependency in functional tests Alex Bennée
2025-03-08 21:53 ` [PULL 09/31] tests/functional: Introduce the dso_suffix() helper Alex Bennée
2025-03-08 21:53 ` [PULL 10/31] tests/functional: Allow running TCG plugins tests on non-Linux/BSD hosts Alex Bennée
2025-03-08 21:53 ` [PULL 11/31] libvirt-ci: bump to latest for vulkan-tools Alex Bennée
2025-03-08 21:53 ` [PULL 12/31] tests/vm: bump timeout for shutdown Alex Bennée
2025-03-08 21:53 ` [PULL 13/31] tests/tcg: mark test-vma as a linux-only test Alex Bennée
2025-03-08 21:53 ` [PULL 14/31] tests/tcg: add message to _Static_assert in test-avx Alex Bennée
2025-03-08 21:53 ` [PULL 15/31] tests/tcg: fix constraints in test-i386-adcox Alex Bennée
2025-03-08 21:53 ` [PULL 16/31] tests/tcg: enable -fwrapv for test-i386-bmi Alex Bennée
2025-03-08 21:53 ` Alex Bennée [this message]
2025-03-08 21:53 ` [PULL 18/31] gitlab: add a new build_unit job to track build size Alex Bennée
2025-03-08 21:53 ` [PULL 19/31] tests/functional: add boot error detection for RME tests Alex Bennée
2025-03-08 21:53 ` [PULL 20/31] plugins/api: use qemu_target_page_mask() to get value Alex Bennée
2025-03-08 21:53 ` [PULL 21/31] plugins/loader: populate target_name with target_name() Alex Bennée
2025-03-08 21:53 ` [PULL 22/31] include/qemu: plugin-memory.h doesn't need cpu-defs.h Alex Bennée
2025-03-08 21:53 ` [PULL 23/31] plugins/api: clean-up the includes Alex Bennée
2025-03-08 21:53 ` [PULL 24/31] plugins/plugin.h: include queue.h Alex Bennée
2025-03-08 21:53 ` [PULL 25/31] plugins/loader: compile loader only once Alex Bennée
2025-03-08 21:53 ` [PULL 26/31] plugins/api: split out binary path/start/end/entry code Alex Bennée
2025-03-08 21:53 ` [PULL 27/31] plugins/api: split out the vaddr/hwaddr helpers Alex Bennée
2025-03-08 21:53 ` [PULL 28/31] plugins/api: split out time control helpers Alex Bennée
2025-03-08 21:53 ` [PULL 29/31] plugins/api: build only once Alex Bennée
2025-03-08 21:53 ` [PULL 30/31] plugins/core: make a single build unit Alex Bennée
2025-03-08 21:53 ` [PULL 31/31] MAINTAINERS: remove widely sanctioned entities Alex Bennée
2025-03-09  3:44 ` [PULL 00/31] testing, plugin and maintainer updates Stefan Hajnoczi
2025-03-09 21:02   ` Alex Bennée
2025-03-10  5:44     ` Stefan Hajnoczi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20250308215326.2907828-18-alex.bennee@linaro.org \
    --to=alex.bennee@linaro.org \
    --cc=brian.cain@oss.qualcomm.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-arm@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=richard.henderson@linaro.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).