msg_347.c revision 1.7
11.7Srillig/* $NetBSD: msg_347.c,v 1.7 2023/08/02 21:11:35 rillig Exp $ */ 21.1Srillig# 3 "msg_347.c" 31.1Srillig 41.1Srillig// Test for message: redeclaration of '%s' with type '%s', expected '%s' [347] 51.1Srillig 61.5Srillig/* lint1-extra-flags: -r -X 351 */ 71.1Srillig 81.1Srillig/* 91.1Srillig * Message 27 already covers redeclarations, but it doesn't include enough 101.1Srillig * details to make any sense of it. 111.1Srillig */ 121.1Srillig 131.1Srillig/* 141.7Srillig * Before 2023-08-02, lint did not interpret unnamed function parameters with 151.7Srillig * complicated types correctly. The named counterparts were no problem, though. 161.1Srillig */ 171.7Srillig 181.1Srilligvoid function_parameter(void *, double *(void *, int)); 191.7Srilligvoid function_parameter(void *fs, double *fn(void *, int)); 201.2Srillig 211.2Srillig 221.4Srillig/* expect+1: warning: struct 'last_arg' never defined [233] */ 231.2Srilligstruct last_arg; 241.2Srilligvoid last_arg_struct(double, double *(struct last_arg *)); 251.2Srilligvoid last_arg_struct(double d, double *fn(struct last_arg *)); 261.3Srillig 271.3Srillig 281.3Srilligstruct last_param { 291.3Srillig int member; 301.3Srillig}; 311.3Srillig 321.3Srilligvoid last_param(double, double *(struct last_param)); 331.7Srilligvoid last_param(double d, double *fn(struct last_param)); 341.3Srillig 351.3Srillig 361.7Srillig/* expect+1: previous declaration of 'mismatch' [260] */ 371.7Srilligvoid mismatch(double, double *(struct last_param)); 381.7Srillig/* 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] */ 391.7Srilligvoid mismatch(double d, float *fn(struct last_param)); 40