On Thu, 22 Apr 2021 at 11:18, Daniel P. Berrangé <berra...@redhat.com> wrote: > > 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.
The gcc bug report suggests that use of 'volatile' also sidesteps the warning. Is that a sensible approach here ? thanks -- PMM