Module Name:    src
Committed By:   rillig
Date:           Sun Feb 28 01:30:22 UTC 2021

Modified Files:
        src/tests/usr.bin/xlint/lint1: msg_130.c msg_130.exp
        src/usr.bin/xlint/lint1: err.c tree.c

Log Message:
lint: add type information to enum type mismatch


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 src/tests/usr.bin/xlint/lint1/msg_130.c
cvs rdiff -u -r1.3 -r1.4 src/tests/usr.bin/xlint/lint1/msg_130.exp
cvs rdiff -u -r1.83 -r1.84 src/usr.bin/xlint/lint1/err.c
cvs rdiff -u -r1.223 -r1.224 src/usr.bin/xlint/lint1/tree.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/tests/usr.bin/xlint/lint1/msg_130.c
diff -u src/tests/usr.bin/xlint/lint1/msg_130.c:1.4 src/tests/usr.bin/xlint/lint1/msg_130.c:1.5
--- src/tests/usr.bin/xlint/lint1/msg_130.c:1.4	Sat Feb 27 13:43:36 2021
+++ src/tests/usr.bin/xlint/lint1/msg_130.c	Sun Feb 28 01:30:22 2021
@@ -1,7 +1,7 @@
-/*	$NetBSD: msg_130.c,v 1.4 2021/02/27 13:43:36 rillig Exp $	*/
+/*	$NetBSD: msg_130.c,v 1.5 2021/02/28 01:30:22 rillig Exp $	*/
 # 3 "msg_130.c"
 
-// Test for message: enum type mismatch, op %s [130]
+// Test for message: enum type mismatch: '%s' '%s' '%s' [130]
 
 enum color {
 	RED	= 1 << 0,

Index: src/tests/usr.bin/xlint/lint1/msg_130.exp
diff -u src/tests/usr.bin/xlint/lint1/msg_130.exp:1.3 src/tests/usr.bin/xlint/lint1/msg_130.exp:1.4
--- src/tests/usr.bin/xlint/lint1/msg_130.exp:1.3	Sat Feb 27 13:43:36 2021
+++ src/tests/usr.bin/xlint/lint1/msg_130.exp	Sun Feb 28 01:30:22 2021
@@ -1,3 +1,3 @@
-msg_130.c(27): warning: enum type mismatch, op : [130]
-msg_130.c(29): warning: enum type mismatch, op != [130]
-msg_130.c(30): warning: enum type mismatch, op == [130]
+msg_130.c(27): warning: enum type mismatch: 'enum color' ':' 'enum daytime' [130]
+msg_130.c(29): warning: enum type mismatch: 'enum color' '!=' 'enum size' [130]
+msg_130.c(30): warning: enum type mismatch: 'enum color' '==' 'enum size' [130]

Index: src/usr.bin/xlint/lint1/err.c
diff -u src/usr.bin/xlint/lint1/err.c:1.83 src/usr.bin/xlint/lint1/err.c:1.84
--- src/usr.bin/xlint/lint1/err.c:1.83	Sun Feb 28 01:06:57 2021
+++ src/usr.bin/xlint/lint1/err.c	Sun Feb 28 01:30:22 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: err.c,v 1.83 2021/02/28 01:06:57 rillig Exp $	*/
+/*	$NetBSD: err.c,v 1.84 2021/02/28 01:30:22 rillig Exp $	*/
 
 /*
  * Copyright (c) 1994, 1995 Jochen Pohl
@@ -37,7 +37,7 @@
 
 #include <sys/cdefs.h>
 #if defined(__RCSID) && !defined(lint)
-__RCSID("$NetBSD: err.c,v 1.83 2021/02/28 01:06:57 rillig Exp $");
+__RCSID("$NetBSD: err.c,v 1.84 2021/02/28 01:30:22 rillig Exp $");
 #endif
 
 #include <sys/types.h>
@@ -189,7 +189,7 @@ const	char *msgs[] = {
 	"'&' before array or function: ignored",		      /* 127 */
 	"operands have incompatible pointer types, op %s (%s != %s)", /* 128 */
 	"expression has null effect",				      /* 129 */
-	"enum type mismatch, op %s",				      /* 130 */
+	"enum type mismatch: '%s' '%s' '%s'",			      /* 130 */
 	"conversion to '%s' may sign-extend incorrectly",	      /* 131 */
 	"conversion from '%s' to '%s' may lose accuracy",	      /* 132 */
 	"conversion of pointer to '%s' loses bits",		      /* 133 */

Index: src/usr.bin/xlint/lint1/tree.c
diff -u src/usr.bin/xlint/lint1/tree.c:1.223 src/usr.bin/xlint/lint1/tree.c:1.224
--- src/usr.bin/xlint/lint1/tree.c:1.223	Sun Feb 28 01:06:57 2021
+++ src/usr.bin/xlint/lint1/tree.c	Sun Feb 28 01:30:22 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: tree.c,v 1.223 2021/02/28 01:06:57 rillig Exp $	*/
+/*	$NetBSD: tree.c,v 1.224 2021/02/28 01:30:22 rillig Exp $	*/
 
 /*
  * Copyright (c) 1994, 1995 Jochen Pohl
@@ -37,7 +37,7 @@
 
 #include <sys/cdefs.h>
 #if defined(__RCSID) && !defined(lint)
-__RCSID("$NetBSD: tree.c,v 1.223 2021/02/28 01:06:57 rillig Exp $");
+__RCSID("$NetBSD: tree.c,v 1.224 2021/02/28 01:30:22 rillig Exp $");
 #endif
 
 #include <float.h>
@@ -1732,8 +1732,9 @@ check_enum_type_mismatch(op_t op, int ar
 			    type_name(ln->tn_type), type_name(rn->tn_type));
 			break;
 		default:
-			/* enum type mismatch, op %s */
-			warning(130, mp->m_name);
+			/* enum type mismatch: '%s' '%s' '%s' */
+			warning(130, type_name(ln->tn_type), mp->m_name,
+			    type_name(rn->tn_type));
 			break;
 		}
 	} else if (Pflag && mp->m_comparison && op != EQ && op != NE) {

Reply via email to