Wrong warnings "array subscript is above array bounds" are generated when compiling the given test case. warning: array subscript is above array bounds [-Warray-bounds]
1. Create a "test.c" file like the following: /* test.c */ unsigned baz[6]; void test(unsigned *bar, unsigned n) { unsigned i, j; if (n > 6) { n = 6; } for (i = 1; i < n; i++) { for (j = i - 1; j > 0; j--) { bar[j - 1] = baz[j - 1]; } } } 2. # $CC -m64 -O3 -S -Wall ~/test.c -o ~/test.o warning: array subscript is above array bounds [-Warray-bounds]