1 1.4 rillig /* $NetBSD: msg_333.c,v 1.4 2021/07/04 07:09:39 rillig Exp $ */ 2 1.1 rillig # 3 "msg_333.c" 3 1.1 rillig 4 1.1 rillig // Test for message: controlling expression must be bool, not '%s' [333] 5 1.1 rillig // 6 1.1 rillig // See d_c99_bool_strict.c for many more examples. 7 1.1 rillig 8 1.1 rillig /* lint1-extra-flags: -T */ 9 1.1 rillig 10 1.1 rillig typedef _Bool bool; 11 1.1 rillig 12 1.1 rillig const char * 13 1.1 rillig example(bool b, int i, const char *p) 14 1.1 rillig { 15 1.4 rillig 16 1.1 rillig if (b) 17 1.1 rillig return "bool"; 18 1.4 rillig 19 1.4 rillig /* expect+1: must be bool, not 'int' [333] */ 20 1.4 rillig if (i) 21 1.1 rillig return "int"; 22 1.4 rillig 23 1.4 rillig /* expect+1: must be bool, not 'pointer' [333] */ 24 1.4 rillig if (p) 25 1.1 rillig return "pointer"; 26 1.4 rillig 27 1.4 rillig if (__lint_false) { 28 1.4 rillig /* expect+1: warning: statement not reached [193] */ 29 1.4 rillig return "bool constant"; 30 1.4 rillig } 31 1.4 rillig 32 1.4 rillig /* expect+1: controlling expression must be bool, not 'int' [333] */ 33 1.4 rillig if (0) { 34 1.4 rillig /* expect+1: warning: statement not reached [193] */ 35 1.2 rillig return "integer constant"; 36 1.4 rillig } 37 1.4 rillig 38 1.1 rillig return p + i; 39 1.1 rillig } 40