False positive from -Warray-bounds?

Lars Gullik Bjønnes larsbj@gullik.org
Thu Dec 29 22:02:00 GMT 2011


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.

-- 
        Lgb



More information about the Gcc-help mailing list