http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59124
--- Comment #2 from Dmitry Gorbachev <d.g.gorbachev at gmail dot com> --- Another testcase: ============= 8< ============= extern char *bar[17]; int foo(int argc, char **argv) { int i; int n = 0; for (i = 0; i < argc; i++) n++; for (i = 0; i < argc; i++) argv[i] = bar[i + n]; return 0; } ============= >8 ============= $ gcc -S -Wall -O3 2.c 2.c: In function 'foo': 2.c:12:18: warning: array subscript is above array bounds [-Warray-bounds] argv[i] = bar[i + n]; ^ 2.c:12:18: warning: array subscript is above array bounds [-Warray-bounds] 2.c:12:18: warning: array subscript is above array bounds [-Warray-bounds] 2.c:12:18: warning: array subscript is above array bounds [-Warray-bounds] 2.c:12:18: warning: array subscript is above array bounds [-Warray-bounds] 2.c:12:18: warning: array subscript is above array bounds [-Warray-bounds] 2.c:12:18: warning: array subscript is above array bounds [-Warray-bounds] 2.c:12:18: warning: array subscript is above array bounds [-Warray-bounds] 2.c:12:18: warning: array subscript is above array bounds [-Warray-bounds]