1*1f5207b7SJohn Levon #include <stdio.h>
2*1f5207b7SJohn Levon 
3*1f5207b7SJohn Levon #define ARRAY_SIZE(x) (sizeof(x)/sizeof((x)[0]))
4*1f5207b7SJohn Levon 
5*1f5207b7SJohn Levon int a[] = {1, 2, 3, 4};
6*1f5207b7SJohn Levon 
main(void)7*1f5207b7SJohn Levon int main(void)
8*1f5207b7SJohn Levon {
9*1f5207b7SJohn Levon 	int *p;
10*1f5207b7SJohn Levon 
11*1f5207b7SJohn Levon 	for (p = a; p < &a[ARRAY_SIZE(a)]; p++)
12*1f5207b7SJohn Levon 		printf("%d\n", *p);
13*1f5207b7SJohn Levon 	p = &a[5];
14*1f5207b7SJohn Levon 	return 0;
15*1f5207b7SJohn Levon }
16*1f5207b7SJohn Levon /*
17*1f5207b7SJohn Levon  * check-name: smatch array check #3
18*1f5207b7SJohn Levon  * check-command: smatch sm_array_overflow3.c
19*1f5207b7SJohn Levon  *
20*1f5207b7SJohn Levon  * check-output-start
21*1f5207b7SJohn Levon sm_array_overflow3.c:13 main() error: buffer overflow 'a' 4 <= 5
22*1f5207b7SJohn Levon  * check-output-end
23*1f5207b7SJohn Levon  */
24