msg_153.c revision 1.12
11.12Srillig/*	$NetBSD: msg_153.c,v 1.12 2025/05/04 08:37:09 rillig Exp $	*/
21.1Srillig# 3 "msg_153.c"
31.1Srillig
41.4Srillig// Test for message: converting '%s' to incompatible '%s' for argument %d [153]
51.1Srillig
61.7Srillig/* lint1-extra-flags: -X 351 */
71.7Srillig
81.3Srillig
91.3Srilligtypedef double (*unary_operator)(double);
101.10Srilligtypedef unsigned char sixteen_bytes[16];
111.3Srillig
121.4Srilligvoid sink_function_pointer(unary_operator);
131.4Srilligvoid sink_int_pointer(int *);
141.8Srilligvoid sink_qualifiers(char *, const char *, volatile char *, const volatile char *);
151.10Srilligvoid take_pointer_to_sixteen_bytes(sixteen_bytes *);
161.10Srillig
171.10Srilligsixteen_bytes bytes;
181.3Srillig
191.3Srilligvoid
201.4Srilligto_function_pointer(int *x)
211.3Srillig{
221.6Srillig	/* expect+1: warning: converting 'pointer to int' to incompatible 'pointer to function(double) returning double' for argument 1 [153] */
231.6Srillig	sink_function_pointer(x);
241.4Srillig}
251.4Srillig
261.4Srilligvoid
271.4Srilligto_int_pointer(unary_operator op)
281.4Srillig{
291.6Srillig	/* expect+1: warning: converting 'pointer to function(double) returning double' to incompatible 'pointer to int' for argument 1 [153] */
301.6Srillig	sink_int_pointer(op);
311.3Srillig}
321.8Srillig
331.8Srilligvoid
341.8Srilligqualifiers(char *ptr, const volatile char *cvptr)
351.8Srillig{
361.8Srillig	sink_qualifiers(ptr, ptr, ptr, ptr);
371.8Srillig
381.12Srillig	/* expect+3: warning: passing 'pointer to const volatile char' as argument 1 to 'sink_qualifiers' discards 'const volatile' [383] */
391.12Srillig	/* expect+2: warning: passing 'pointer to const volatile char' as argument 2 to 'sink_qualifiers' discards 'volatile' [383] */
401.12Srillig	/* expect+1: warning: passing 'pointer to const volatile char' as argument 3 to 'sink_qualifiers' discards 'const' [383] */
411.8Srillig	sink_qualifiers(cvptr, cvptr, cvptr, cvptr);
421.8Srillig}
431.10Srillig
441.10Srilligvoid
451.10Srilligpass_pointer_to_array(void)
461.10Srillig{
471.10Srillig	take_pointer_to_sixteen_bytes(&bytes);
481.10Srillig}
49