On Sun, 2 May 2021 19:48:35 +0200 Thomas Huth <th...@redhat.com> wrote:
> From: Philippe Mathieu-Daudé <phi...@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 now how big that pointed area is, so assume its s/now/know/ s/assume/it assumes that/ > 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 <th...@redhat.com> > Signed-off-by: Philippe Mathieu-Daudé <phi...@redhat.com> > Message-Id: <20210422145911.2513980-1-phi...@redhat.com> > Acked-by: Christian Borntraeger <borntrae...@de.ibm.com> > [thuth: Use the pre-existing cc-option macro instead of adding a new one] > Signed-off-by: Thomas Huth <th...@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) Reviewed-by: Cornelia Huck <coh...@redhat.com>