msg_153.c revision 1.10
1/* $NetBSD: msg_153.c,v 1.10 2025/02/24 19:49:00 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' to argument 1 discards 'const volatile' [383] */ 39 /* expect+2: warning: passing 'pointer to const volatile char' to argument 2 discards 'volatile' [383] */ 40 /* expect+1: warning: passing 'pointer to const volatile char' to argument 3 discards 'const' [383] */ 41 sink_qualifiers(cvptr, cvptr, cvptr, cvptr); 42} 43 44void 45pass_pointer_to_array(void) 46{ 47 // FIXME: Must be a pointer to 16 bytes, not to 1 byte. 48 /* expect+1: warning: converting 'pointer to unsigned char' to incompatible 'pointer to array[16] of unsigned char' for argument 1 [153] */ 49 take_pointer_to_sixteen_bytes(&bytes); 50} 51