1 1.9 rillig /* $NetBSD: msg_211.c,v 1.9 2025/04/12 15:49:50 rillig Exp $ */ 2 1.1 rillig # 3 "msg_211.c" 3 1.1 rillig 4 1.5 rillig // Test for message: function has return type '%s' but returns '%s' [211] 5 1.1 rillig 6 1.6 rillig /* lint1-extra-flags: -X 351 */ 7 1.6 rillig 8 1.3 rillig struct str { 9 1.3 rillig int member; 10 1.3 rillig }; 11 1.3 rillig 12 1.3 rillig int 13 1.3 rillig return_int(double dbl, void *ptr, struct str str) 14 1.3 rillig { 15 1.3 rillig if (dbl > 0.0) 16 1.3 rillig return dbl; 17 1.3 rillig if (ptr != (void *)0) 18 1.9 rillig /* expect+1: warning: invalid combination of integer 'int' and pointer 'pointer to void' for 'return' [183] */ 19 1.3 rillig return ptr; 20 1.3 rillig if (str.member > 0) 21 1.5 rillig /* expect+1: error: function has return type 'int' but returns 'struct str' [211] */ 22 1.3 rillig return str; 23 1.3 rillig return 3; 24 1.3 rillig } 25 1.7 rillig 26 1.7 rillig enum A { 27 1.7 rillig A 28 1.7 rillig }; 29 1.7 rillig 30 1.7 rillig enum B { 31 1.7 rillig B 32 1.7 rillig }; 33 1.7 rillig 34 1.7 rillig enum A 35 1.7 rillig return_enum(enum B arg) 36 1.7 rillig { 37 1.7 rillig /* expect+1: warning: function has return type 'enum A' but returns 'enum B' [211] */ 38 1.7 rillig return arg; 39 1.7 rillig } 40