Home | History | Annotate | Line # | Download | only in lint1
msg_211.c revision 1.7.2.1
      1  1.7.2.1  perseant /*	$NetBSD: msg_211.c,v 1.7.2.1 2025/08/02 05:58:17 perseant 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.7.2.1  perseant 		/* 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