Home | History | Annotate | Line # | Download | only in lint1
      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