Home | History | Annotate | Line # | Download | only in lint1
      1  1.5  rillig /*	$NetBSD: msg_139.c,v 1.5 2023/03/28 14:44:34 rillig Exp $	*/
      2  1.1  rillig # 3 "msg_139.c"
      3  1.1  rillig 
      4  1.1  rillig // Test for message: division by 0 [139]
      5  1.1  rillig 
      6  1.5  rillig /* lint1-extra-flags: -X 351 */
      7  1.5  rillig 
      8  1.3  rillig void sink_int(int);
      9  1.3  rillig void sink_double(double);
     10  1.3  rillig 
     11  1.3  rillig void
     12  1.3  rillig example(int i)
     13  1.3  rillig {
     14  1.3  rillig 	enum {
     15  1.3  rillig 		zero = 0
     16  1.3  rillig 	};
     17  1.3  rillig 
     18  1.3  rillig 	sink_int(i / 0);	/* only triggers in constant expressions */
     19  1.3  rillig 	sink_int(i / zero);	/* only triggers in constant expressions */
     20  1.3  rillig 	sink_double(i / 0.0);
     21  1.3  rillig 
     22  1.4  rillig 	/* expect+1: error: division by 0 [139] */
     23  1.4  rillig 	sink_int(13 / 0);
     24  1.4  rillig 	/* expect+1: error: division by 0 [139] */
     25  1.4  rillig 	sink_int(13 / zero);
     26  1.4  rillig 	/* expect+1: error: division by 0 [139] */
     27  1.4  rillig 	sink_double(13 / 0.0);	/* XXX: Clang doesn't warn */
     28  1.4  rillig 	/* expect+1: error: division by 0 [139] */
     29  1.4  rillig 	sink_double(13 / -0.0);	/* XXX: Clang doesn't warn */
     30  1.3  rillig }
     31