xref: /netbsd-src/tests/usr.bin/xlint/lint1/msg_153.c (revision e79ed5007234254008237aa586d5435bb81927a7)
1 /*	$NetBSD: msg_153.c,v 1.9 2024/11/23 16:48:35 rillig Exp $	*/
2 # 3 "msg_153.c"
3 
4 // Test for message: converting '%s' to incompatible '%s' for argument %d [153]
5 
6 /* lint1-extra-flags: -X 351 */
7 
8 
9 typedef double (*unary_operator)(double);
10 
11 void sink_function_pointer(unary_operator);
12 void sink_int_pointer(int *);
13 void sink_qualifiers(char *, const char *, volatile char *, const volatile char *);
14 
15 void
16 to_function_pointer(int *x)
17 {
18 	/* expect+1: warning: converting 'pointer to int' to incompatible 'pointer to function(double) returning double' for argument 1 [153] */
19 	sink_function_pointer(x);
20 }
21 
22 void
23 to_int_pointer(unary_operator op)
24 {
25 	/* expect+1: warning: converting 'pointer to function(double) returning double' to incompatible 'pointer to int' for argument 1 [153] */
26 	sink_int_pointer(op);
27 }
28 
29 void
30 qualifiers(char *ptr, const volatile char *cvptr)
31 {
32 	sink_qualifiers(ptr, ptr, ptr, ptr);
33 
34 	/* expect+3: warning: passing 'pointer to const volatile char' to argument 1 discards 'const volatile' [383] */
35 	/* expect+2: warning: passing 'pointer to const volatile char' to argument 2 discards 'volatile' [383] */
36 	/* expect+1: warning: passing 'pointer to const volatile char' to argument 3 discards 'const' [383] */
37 	sink_qualifiers(cvptr, cvptr, cvptr, cvptr);
38 }
39