msg_153.c revision 1.10
11.10Srillig/* $NetBSD: msg_153.c,v 1.10 2025/02/24 19:49:00 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.9Srillig /* expect+3: warning: passing 'pointer to const volatile char' to argument 1 discards 'const volatile' [383] */ 391.9Srillig /* expect+2: warning: passing 'pointer to const volatile char' to argument 2 discards 'volatile' [383] */ 401.9Srillig /* expect+1: warning: passing 'pointer to const volatile char' to argument 3 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 // FIXME: Must be a pointer to 16 bytes, not to 1 byte. 481.10Srillig /* expect+1: warning: converting 'pointer to unsigned char' to incompatible 'pointer to array[16] of unsigned char' for argument 1 [153] */ 491.10Srillig take_pointer_to_sixteen_bytes(&bytes); 501.10Srillig} 51