xref: /netbsd-src/tests/usr.bin/xlint/lint1/msg_139.c (revision b2baa50111d645353fa30b4deab0f79d93650c8c)
1*b2baa501Srillig /*	$NetBSD: msg_139.c,v 1.5 2023/03/28 14:44:34 rillig Exp $	*/
2a0a15c14Srillig # 3 "msg_139.c"
3a0a15c14Srillig 
4a0a15c14Srillig // Test for message: division by 0 [139]
5a0a15c14Srillig 
6*b2baa501Srillig /* lint1-extra-flags: -X 351 */
7*b2baa501Srillig 
8b803b07dSrillig void sink_int(int);
9b803b07dSrillig void sink_double(double);
10b803b07dSrillig 
11b803b07dSrillig void
example(int i)12b803b07dSrillig example(int i)
13b803b07dSrillig {
14b803b07dSrillig 	enum {
15b803b07dSrillig 		zero = 0
16b803b07dSrillig 	};
17b803b07dSrillig 
18b803b07dSrillig 	sink_int(i / 0);	/* only triggers in constant expressions */
19b803b07dSrillig 	sink_int(i / zero);	/* only triggers in constant expressions */
20b803b07dSrillig 	sink_double(i / 0.0);
21b803b07dSrillig 
2265e5c21bSrillig 	/* expect+1: error: division by 0 [139] */
2365e5c21bSrillig 	sink_int(13 / 0);
2465e5c21bSrillig 	/* expect+1: error: division by 0 [139] */
2565e5c21bSrillig 	sink_int(13 / zero);
2665e5c21bSrillig 	/* expect+1: error: division by 0 [139] */
2765e5c21bSrillig 	sink_double(13 / 0.0);	/* XXX: Clang doesn't warn */
2865e5c21bSrillig 	/* expect+1: error: division by 0 [139] */
2965e5c21bSrillig 	sink_double(13 / -0.0);	/* XXX: Clang doesn't warn */
30b803b07dSrillig }
31