[Top][All Lists]

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

Re: s390-ccw: warning: writing 1 byte into a region of size 0 [-Wstringo

From: Christian Borntraeger
Subject: Re: s390-ccw: warning: writing 1 byte into a region of size 0 [-Wstringop-overflow=]
Date: Thu, 22 Apr 2021 08:04:52 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.9.1

On 22.04.21 06:47, Thomas Huth wrote:
On 22/04/2021 06.18, Philippe Mathieu-Daudé wrote:
Hi Thomas, Daniel, Stefano,

Regarding the following warning (GCC 11 on Fedora 34):

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;

       |         ~~~~~^~~

Daniel were right on IRC:

danpb: it is from a call  memset((char *)S390EP, 0, 6)     where  S390EP
is just a constant address 0x10008
danpb: the compiler doesn't now how big that is, so it seems to assume
it is zero length

This is a known GCC issue:
"gcc-11 -Warray-bounds or -Wstringop-overread warning when accessing a
pointer from integer literal"

Hi Philippe,

thanks for following up with the gcc bugzilla!

... so the problem is that GCC thinks we're in fact dereferencing a NULL 
pointer at offset 0x10008 here? Wow, that's ... crazy.

Not sure what to do now - wait for the bug to get resolved? Compile the s390-ccw bios 
with -Wno-stringop-overread ? Add "volatiles" here and there to hope that these 
silence the compiler warnings? ... I tend to wait for the bug ticket to see whether the 
GCC folks change the behavior of the compiler again, but I'm open for other suggestions.

I tend to follow the Linux kernel. If the compiler tends to produce stupid 
silence them with Wno-*.
I think it makes no sense to have warnings with a high tendency of false 
positives in a
project with Werror.

reply via email to

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