blob: b540885547b0ce243c4a72f65e7118010532ecf4 [file] [log] [blame]
Ted Kremenek64699be2011-02-16 01:57:07 +00001// RUN: %clang_cc1 -verify %s
2
3int foo() {
4 int x[2];
5 int y[2];
6 int *p = &y[2]; // no-warning
7 (void) sizeof(x[2]); // no-warning
8 y[2] = 2; // expected-warning{{array index excedes last array element}}
9 return x[2] + // expected-warning{{array index excedes last array element}}
10 y[-1] + // expected-warning{{array index precedes first array element}}
11 x[sizeof(x)] + // expected-warning{{array index excedes last array element}}
12 x[sizeof(x) / sizeof(x[0])] + // expected-warning{{array index excedes last array element}}
13 x[sizeof(x) / sizeof(x[0]) - 1] + // no-warning
14 x[sizeof(x[2])]; // expected-warning{{array index excedes last array element}}
15}
16