Re: False positive from -Warray-bounds?

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

 



Lars Gullik Bjønnes <larsbj@xxxxxxxxxx> writes:

> I have this code:
>
> --------------
> unsigned int f(unsigned int value)
> {
>     unsigned int i = (value & 0xffff);
>     return (i == 0xffff ? 0xffffffff : i);
> }
>
>
> static int *arr1[10];
>
> void t(unsigned int s)
> {
>     arr1[f(s)] = 0;
>     arr1[f(s)] = 0;
> }
> ------------------
>
>
> When compiled with 'gcc -Wall -Wextra -c' I get a warning about
> "subscript is above array bounds".
> Shouldn't the -Warray-bounds only warn if will _always_ be out-of-bounds?
>
> Is this a false positive, or is there something that I am completely missing?
>
> I see this with gcc from trunk (some days ago), and with redhat gcc 4.6.2-1.

The warning triggers if there is some code path in which the index is
provably out of bounds.  That is true of this code.  I don't think I
would describe this as a false positive.  I think it is a case where, as
the -Wall documentation says, the code should be modified to avoid the
warning.

Ian



[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