Re: gcc-14-1-0: warning: writing 1 byte into a region of size 0 [-Wstringop-overflow=]

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

 



On Thu, Jul 18, 2024 at 05:07:52AM -0500, Segher Boessenkool wrote:
> On Thu, Jul 18, 2024 at 10:33:49AM +0200, Josef Wolf wrote:
> > On Wed, Jul 17, 2024 at 05:07:02PM +0100, Jonathan Wakely wrote:
> > > On Wed, 17 Jul 2024 at 13:19, Josef Wolf <jw@xxxxxxxxxxxxx> wrote:
> > > >   #define MG 32
> > > >   static unsigned char a[MG] = {0};
> > > >
> > > >   void init_login (void)
> > > >   {
> > > >       int i;
> > > >
> > > >       for (i=0; i<MG; i++) {
> > > >          a[i] = 1;
> > > >       }
> > > >   }
> > [ ... ]
> > > >   m68k-unknown-elf-gcc -ansi -pedantic -Wall -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -std=c99 -Wnull-dereference -g  -O3 -fno-toplevel-reorder  -mcpu32 -ffreestanding -c -o login.o login.c
> > > >   login.c: In function 'init_login':
> > > >   login.c:2909:22: warning: writing 1 byte into a region of size 0 [-Wstringop-overflow=]
> > > >    2909 |                 a[i] = 1;
> > > >         |                 ~~~~~^~~
> > > >   login.c:2899:22: note: at offset 32 into destination object 'a' of size 32
> > > >    2899 | static unsigned char a[MG] = {0};
> > > >         |                      ^
> > > 
> > > -Wstringop-overflow is broken by design.
> > > 
> > > This is one of the worst examples I've seen though.
> > 
> > Yes, AFAIR I've already seen similar warnings but the were by far not as
> > obvious as this one.
> > 
> > Any plans to fix this?
> 
> Maybe -Wstringop-overflow should not be default (as it is now)?  Or
> maybe just -Wstringop-overflow=2 should not be.  There are way too many
> obvious (and confusing!) problems with it.

What good would be a broken warning if it is not active by default?

Even worse are the non-obvious problems. For an obvious problem, you can see
very quickly that the warning doesn't make sense. For non-obvious cases, you
would need to dive deeply into the problem before you (eventually) find that
the warning does not make any sense.

-- 
Josef Wolf
jw@xxxxxxxxxxxxx



[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux