xref: /netbsd-src/tests/usr.bin/xlint/lint1/msg_167.c (revision c6466ed0f7b5b26a3f7774bb65f229ef46abdf62)
1*c6466ed0Srillig /*	$NetBSD: msg_167.c,v 1.7 2024/03/30 16:47:45 rillig Exp $	*/
2a0a15c14Srillig # 3 "msg_167.c"
3a0a15c14Srillig 
4*c6466ed0Srillig // Test for message: array subscript %jd cannot be negative [167]
5a0a15c14Srillig 
6e6298b92Srillig /* lint1-extra-flags: -X 351 */
7e6298b92Srillig 
8af03d2a0Srillig void
example(int * ptr)9af03d2a0Srillig example(int *ptr)
10af03d2a0Srillig {
11af03d2a0Srillig 	int arr[6];
12af03d2a0Srillig 
13*c6466ed0Srillig 	/* expect+1: warning: array subscript -3 cannot be negative [167] */
1465e5c21bSrillig 	arr[-3] = 13;
15af03d2a0Srillig 
16af03d2a0Srillig 	/*
17af03d2a0Srillig 	 * Since the pointer may have been initialized with "arr + 3",
18af03d2a0Srillig 	 * subtracting from its address is allowed.
19af03d2a0Srillig 	 */
20af03d2a0Srillig 	ptr[-3] = 13;
21af03d2a0Srillig }
22