Home | History | Annotate | Line # | Download | only in lint1
msg_333.c revision 1.7.2.1
      1  1.7.2.1  perseant /*	$NetBSD: msg_333.c,v 1.7.2.1 2025/08/02 05:58:18 perseant 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.7    rillig /* lint1-extra-flags: -T -X 351 */
      9      1.1    rillig 
     10      1.1    rillig typedef _Bool bool;
     11      1.1    rillig 
     12      1.6    rillig static enum tagged_color {
     13      1.6    rillig 	tagged_red,
     14      1.6    rillig } e1;
     15      1.6    rillig typedef enum {
     16      1.6    rillig 	typedef_red,
     17      1.6    rillig } typedef_color;
     18      1.6    rillig static typedef_color e2;
     19      1.6    rillig 
     20      1.1    rillig const char *
     21      1.1    rillig example(bool b, int i, const char *p)
     22      1.1    rillig {
     23      1.4    rillig 
     24      1.1    rillig 	if (b)
     25      1.1    rillig 		return "bool";
     26      1.4    rillig 
     27      1.5    rillig 	/* expect+1: error: controlling expression must be bool, not 'int' [333] */
     28      1.4    rillig 	if (i)
     29      1.1    rillig 		return "int";
     30      1.4    rillig 
     31      1.6    rillig 	/* expect+1: error: controlling expression must be bool, not 'enum tagged_color' [333] */
     32      1.6    rillig 	if (e1)
     33      1.6    rillig 		return "tagged enum";
     34      1.6    rillig 
     35      1.6    rillig 	/* expect+1: error: controlling expression must be bool, not 'enum typedef typedef_color' [333] */
     36      1.6    rillig 	if (e2)
     37      1.6    rillig 		return "typedef enum";
     38      1.6    rillig 
     39      1.5    rillig 	/* expect+1: error: controlling expression must be bool, not 'pointer' [333] */
     40      1.4    rillig 	if (p)
     41      1.1    rillig 		return "pointer";
     42      1.4    rillig 
     43      1.4    rillig 	if (__lint_false) {
     44  1.7.2.1  perseant 		/* expect+1: warning: 'return' statement not reached [193] */
     45      1.4    rillig 		return "bool constant";
     46      1.4    rillig 	}
     47      1.4    rillig 
     48      1.5    rillig 	/* expect+1: error: controlling expression must be bool, not 'int' [333] */
     49      1.4    rillig 	if (0) {
     50  1.7.2.1  perseant 		/* expect+1: warning: 'return' statement not reached [193] */
     51      1.2    rillig 		return "integer constant";
     52      1.4    rillig 	}
     53      1.4    rillig 
     54      1.1    rillig 	return p + i;
     55      1.1    rillig }
     56