qemu-s390x
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 3/4] pc-bios/s390-ccw: Silence GCC 11 stringop-overflow warni


From: Cornelia Huck
Subject: Re: [PATCH 3/4] pc-bios/s390-ccw: Silence GCC 11 stringop-overflow warning
Date: Mon, 3 May 2021 11:00:00 +0200

On Sun,  2 May 2021 19:48:35 +0200
Thomas Huth <thuth@redhat.com> wrote:

> 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 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 <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>
> [thuth: Use the pre-existing cc-option macro instead of adding a new one]
> 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)

Reviewed-by: Cornelia Huck <cohuck@redhat.com>




reply via email to

[Prev in Thread] Current Thread [Next in Thread]