Home | History | Annotate | Line # | Download | only in lint1
msg_123.c revision 1.8
      1 /*	$NetBSD: msg_123.c,v 1.8 2023/06/03 20:28:54 rillig Exp $	*/
      2 # 3 "msg_123.c"
      3 
      4 // Test for message: illegal combination of %s '%s' and %s '%s', op '%s' [123]
      5 
      6 /* lint1-extra-flags: -X 351 */
      7 
      8 void ok(_Bool);
      9 void bad(_Bool);
     10 
     11 void
     12 compare(_Bool b, int i, double d, const char *p)
     13 {
     14 	ok(b < b);
     15 	ok(b < i);
     16 	ok(b < d);
     17 	/* expect+1: warning: illegal combination of integer '_Bool' and pointer 'pointer to const char', op '<' [123] */
     18 	bad(b < p);
     19 	ok(i < b);
     20 	ok(i < i);
     21 	ok(i < d);
     22 	/* expect+1: warning: illegal combination of integer 'int' and pointer 'pointer to const char', op '<' [123] */
     23 	bad(i < p);
     24 	ok(d < b);
     25 	ok(d < i);
     26 	ok(d < d);
     27 	/* expect+1: error: operands of '<' have incompatible types 'double' and 'pointer to const char' [107] */
     28 	bad(d < p);
     29 	/* expect+1: warning: illegal combination of pointer 'pointer to const char' and integer '_Bool', op '<' [123] */
     30 	bad(p < b);
     31 	/* expect+1: warning: illegal combination of pointer 'pointer to const char' and integer 'int', op '<' [123] */
     32 	bad(p < i);
     33 	/* expect+1: error: operands of '<' have incompatible types 'pointer to const char' and 'double' [107] */
     34 	bad(p < d);
     35 	ok(p < p);
     36 }
     37 
     38 void
     39 cover_check_assign_types_compatible(int *int_pointer, int i)
     40 {
     41 	/* expect+1: warning: illegal combination of pointer 'pointer to int' and integer 'int', op '=' [123] */
     42 	int_pointer = i;
     43 	/* expect+1: warning: illegal combination of integer 'int' and pointer 'pointer to int', op '=' [123] */
     44 	i = int_pointer;
     45 }
     46