msg_153.c revision 1.12
1/*	$NetBSD: msg_153.c,v 1.12 2025/05/04 08:37:09 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
9typedef double (*unary_operator)(double);
10typedef unsigned char sixteen_bytes[16];
11
12void sink_function_pointer(unary_operator);
13void sink_int_pointer(int *);
14void sink_qualifiers(char *, const char *, volatile char *, const volatile char *);
15void take_pointer_to_sixteen_bytes(sixteen_bytes *);
16
17sixteen_bytes bytes;
18
19void
20to_function_pointer(int *x)
21{
22	/* expect+1: warning: converting 'pointer to int' to incompatible 'pointer to function(double) returning double' for argument 1 [153] */
23	sink_function_pointer(x);
24}
25
26void
27to_int_pointer(unary_operator op)
28{
29	/* expect+1: warning: converting 'pointer to function(double) returning double' to incompatible 'pointer to int' for argument 1 [153] */
30	sink_int_pointer(op);
31}
32
33void
34qualifiers(char *ptr, const volatile char *cvptr)
35{
36	sink_qualifiers(ptr, ptr, ptr, ptr);
37
38	/* expect+3: warning: passing 'pointer to const volatile char' as argument 1 to 'sink_qualifiers' discards 'const volatile' [383] */
39	/* expect+2: warning: passing 'pointer to const volatile char' as argument 2 to 'sink_qualifiers' discards 'volatile' [383] */
40	/* expect+1: warning: passing 'pointer to const volatile char' as argument 3 to 'sink_qualifiers' discards 'const' [383] */
41	sink_qualifiers(cvptr, cvptr, cvptr, cvptr);
42}
43
44void
45pass_pointer_to_array(void)
46{
47	take_pointer_to_sixteen_bytes(&bytes);
48}
49