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)12b803b07dSrilligexample(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