1*5e813441Srillig /* $NetBSD: msg_347.c,v 1.7 2023/08/02 21:11:35 rillig Exp $ */ 2732fd0a3Srillig # 3 "msg_347.c" 3732fd0a3Srillig 4732fd0a3Srillig // Test for message: redeclaration of '%s' with type '%s', expected '%s' [347] 5732fd0a3Srillig 6b2baa501Srillig /* lint1-extra-flags: -r -X 351 */ 7732fd0a3Srillig 8732fd0a3Srillig /* 9732fd0a3Srillig * Message 27 already covers redeclarations, but it doesn't include enough 10732fd0a3Srillig * details to make any sense of it. 11732fd0a3Srillig */ 12732fd0a3Srillig 13732fd0a3Srillig /* 14*5e813441Srillig * Before 2023-08-02, lint did not interpret unnamed function parameters with 15*5e813441Srillig * complicated types correctly. The named counterparts were no problem, though. 16732fd0a3Srillig */ 17*5e813441Srillig 18732fd0a3Srillig void function_parameter(void *, double *(void *, int)); 19*5e813441Srillig void function_parameter(void *fs, double *fn(void *, int)); 20c3be8460Srillig 21c3be8460Srillig 225d41e58aSrillig /* expect+1: warning: struct 'last_arg' never defined [233] */ 23c3be8460Srillig struct last_arg; 24c3be8460Srillig void last_arg_struct(double, double *(struct last_arg *)); 25c3be8460Srillig void last_arg_struct(double d, double *fn(struct last_arg *)); 26e6898815Srillig 27e6898815Srillig 28e6898815Srillig struct last_param { 29e6898815Srillig int member; 30e6898815Srillig }; 31e6898815Srillig 32e6898815Srillig void last_param(double, double *(struct last_param)); 33e6898815Srillig void last_param(double d, double *fn(struct last_param)); 34e6898815Srillig 35*5e813441Srillig 36*5e813441Srillig /* expect+1: previous declaration of 'mismatch' [260] */ 37*5e813441Srillig void mismatch(double, double *(struct last_param)); 38*5e813441Srillig /* expect+1: error: redeclaration of 'mismatch' with type 'function(double, pointer to function(struct last_param) returning pointer to float) returning void', expected 'function(double, pointer to function(struct last_param) returning pointer to double) returning void' [347] */ 39*5e813441Srillig void mismatch(double d, float *fn(struct last_param)); 40