[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: |
Daniel P . Berrangé |
Subject: |
Re: s390-ccw: warning: writing 1 byte into a region of size 0 [-Wstringop-overflow=] |
Date: |
Thu, 22 Apr 2021 11:15:19 +0100 |
User-agent: |
Mutt/2.0.5 (2021-01-21) |
On Thu, Apr 22, 2021 at 06:47:30AM +0200, 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:
> > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99578
> > "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.
Assuming it is just this one place in the code ,then we should just
use "pragma" to temporarily disable/re-enable that single warning flag
either side of the problem.
Regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
- s390-ccw: warning: writing 1 byte into a region of size 0 [-Wstringop-overflow=], Philippe Mathieu-Daudé, 2021/04/22
- Re: s390-ccw: warning: writing 1 byte into a region of size 0 [-Wstringop-overflow=], Thomas Huth, 2021/04/22
- Re: s390-ccw: warning: writing 1 byte into a region of size 0 [-Wstringop-overflow=], Christian Borntraeger, 2021/04/22
- Re: s390-ccw: warning: writing 1 byte into a region of size 0 [-Wstringop-overflow=],
Daniel P . Berrangé <=
- Re: s390-ccw: warning: writing 1 byte into a region of size 0 [-Wstringop-overflow=], Peter Maydell, 2021/04/22
- Re: s390-ccw: warning: writing 1 byte into a region of size 0 [-Wstringop-overflow=], Philippe Mathieu-Daudé, 2021/04/22
- Re: s390-ccw: warning: writing 1 byte into a region of size 0 [-Wstringop-overflow=], Thomas Huth, 2021/04/22
- Re: s390-ccw: warning: writing 1 byte into a region of size 0 [-Wstringop-overflow=], Christian Borntraeger, 2021/04/22
- Re: s390-ccw: warning: writing 1 byte into a region of size 0 [-Wstringop-overflow=], Philippe Mathieu-Daudé, 2021/04/22
- Re: s390-ccw: warning: writing 1 byte into a region of size 0 [-Wstringop-overflow=], Thomas Huth, 2021/04/22
- Re: s390-ccw: warning: writing 1 byte into a region of size 0 [-Wstringop-overflow=], Philippe Mathieu-Daudé, 2021/04/22
- Re: s390-ccw: warning: writing 1 byte into a region of size 0 [-Wstringop-overflow=], Stefano Garzarella, 2021/04/22
- Re: s390-ccw: warning: writing 1 byte into a region of size 0 [-Wstringop-overflow=], Thomas Huth, 2021/04/22
- Re: s390-ccw: warning: writing 1 byte into a region of size 0 [-Wstringop-overflow=], Philippe Mathieu-Daudé, 2021/04/22