qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Thomas Huth <thuth@redhat.com>
To: qemu-devel@nongnu.org, Peter Maydell <peter.maydell@linaro.org>
Cc: Christian Borntraeger <borntraeger@de.ibm.com>,
	qemu-s390x@nongnu.org, cohuck@redhat.com
Subject: [PULL 7/9] pc-bios/s390-ccw: Silence GCC 11 stringop-overflow warning
Date: Mon, 10 May 2021 09:35:22 +0200	[thread overview]
Message-ID: <20210510073524.85951-8-thuth@redhat.com> (raw)
In-Reply-To: <20210510073524.85951-1-thuth@redhat.com>

From: Philippe Mathieu-Daudé <philmd@redhat.com>

When building on Fedora 34 (gcc version 11.0.0 20210210) we get:

  In file included from pc-bios/s390-ccw/main.c:11:
  In function ‘memset’,
      inlined from ‘boot_setup’ at pc-bios/s390-ccw/main.c:185:5,
      inlined from ‘main’ at pc-bios/s390-ccw/main.c:288:5:
  pc-bios/s390-ccw/libc.h:28:14: warning: writing 1 byte into a region of size 0 [-Wstringop-overflow=]
     28 |         p[i] = c;
        |         ~~~~~^~~

The offending code is:

  memset((char *)S390EP, 0, 6);

where S390EP is a const address:

  #define S390EP 0x10008

The compiler doesn't know how big that pointed area is, so it assume that
its length is zero. This has been reported as BZ#99578 to GCC:
"gcc-11 -Warray-bounds or -Wstringop-overread warning when accessing a
pointer from integer literal"
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99578

As this warning does us more harm than good in the BIOS code (where
lot of direct accesses to low memory are done), silence this warning
for all BIOS objects.

Suggested-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-Id: <20210422145911.2513980-1-philmd@redhat.com>
Acked-by: Christian Borntraeger <borntraeger@de.ibm.com>
Message-Id: <20210502174836.838816-4-thuth@redhat.com>
[thuth: Use the pre-existing cc-option macro instead of adding a new one]
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 pc-bios/s390-ccw/Makefile | 1 +
 1 file changed, 1 insertion(+)

diff --git a/pc-bios/s390-ccw/Makefile b/pc-bios/s390-ccw/Makefile
index f0fe84c9eb..83fb1afb73 100644
--- a/pc-bios/s390-ccw/Makefile
+++ b/pc-bios/s390-ccw/Makefile
@@ -30,6 +30,7 @@ OBJECTS = start.o main.o bootmap.o jump2ipl.o sclp.o menu.o \
 	  virtio.o virtio-scsi.o virtio-blkdev.o libc.o cio.o dasd-ipl.o
 
 QEMU_CFLAGS := -Wall $(filter -W%, $(QEMU_CFLAGS))
+QEMU_CFLAGS += $(call cc-option,-Werror $(QEMU_CFLAGS),-Wno-stringop-overflow)
 QEMU_CFLAGS += -ffreestanding -fno-delete-null-pointer-checks -fno-common -fPIE
 QEMU_CFLAGS += -fwrapv -fno-strict-aliasing -fno-asynchronous-unwind-tables
 QEMU_CFLAGS += $(call cc-option, $(QEMU_CFLAGS), -fno-stack-protector)
-- 
2.27.0



  parent reply	other threads:[~2021-05-10  7:41 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-05-10  7:35 [PULL 0/9] s390-ccw bios update Thomas Huth
2021-05-10  7:35 ` [PULL 1/9] pc-bios/s390-ccw: don't try to read the next block if end of chunk is reached Thomas Huth
2021-05-10  7:35 ` [PULL 2/9] pc-bios/s390-ccw/bootmap: Silence compiler warning from Clang Thomas Huth
2021-05-10  7:35 ` [PULL 3/9] pc-bios/s390-ccw: Use reset_psw pointer instead of hard-coded null pointer Thomas Huth
2021-05-10  7:35 ` [PULL 4/9] pc-bios/s390-ccw/netboot: Use "-Wl, " prefix to pass parameter to the linker Thomas Huth
2021-05-10  7:35 ` [PULL 5/9] pc-bios/s390-ccw: Silence warning from Clang by marking panic() as noreturn Thomas Huth
2021-05-10  7:35 ` [PULL 6/9] pc-bios/s390-ccw: Fix the cc-option macro in the Makefile Thomas Huth
2021-05-10  7:35 ` Thomas Huth [this message]
2021-05-10  7:35 ` [PULL 8/9] pc-bios/s390-ccw: Allow building with Clang, too Thomas Huth
2021-05-12 11:53   ` Philippe Mathieu-Daudé
2021-05-12 13:40     ` Thomas Huth
2021-05-12 14:00       ` Thomas Huth
2021-05-12 14:51         ` Thomas Huth
2021-05-12 14:09     ` Philippe Mathieu-Daudé
2021-05-10  7:35 ` [PULL 9/9] pc-bios/s390: Update the s390-ccw bios binaries with the Clang and other fixes Thomas Huth
2021-05-12  7:53 ` [PULL 0/9] s390-ccw bios update Peter Maydell

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=20210510073524.85951-8-thuth@redhat.com \
    --to=thuth@redhat.com \
    --cc=borntraeger@de.ibm.com \
    --cc=cohuck@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-s390x@nongnu.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).