Module Name:    src
Committed By:   rillig
Date:           Wed Feb 22 22:30:40 UTC 2023

Modified Files:
        src/tests/usr.bin/xlint/lint1: msg_230.c msg_230_uchar.c
            platform_schar.c
        src/usr.bin/xlint/lint1: err.c tree.c

Log Message:
lint: fix confusing message about nonportable character constants


To generate a diff of this commit:
cvs rdiff -u -r1.11 -r1.12 src/tests/usr.bin/xlint/lint1/msg_230.c
cvs rdiff -u -r1.9 -r1.10 src/tests/usr.bin/xlint/lint1/msg_230_uchar.c
cvs rdiff -u -r1.3 -r1.4 src/tests/usr.bin/xlint/lint1/platform_schar.c
cvs rdiff -u -r1.188 -r1.189 src/usr.bin/xlint/lint1/err.c
cvs rdiff -u -r1.504 -r1.505 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_230.c
diff -u src/tests/usr.bin/xlint/lint1/msg_230.c:1.11 src/tests/usr.bin/xlint/lint1/msg_230.c:1.12
--- src/tests/usr.bin/xlint/lint1/msg_230.c:1.11	Sat Feb 26 11:13:01 2022
+++ src/tests/usr.bin/xlint/lint1/msg_230.c	Wed Feb 22 22:30:40 2023
@@ -1,7 +1,7 @@
-/*	$NetBSD: msg_230.c,v 1.11 2022/02/26 11:13:01 rillig Exp $	*/
+/*	$NetBSD: msg_230.c,v 1.12 2023/02/22 22:30:40 rillig Exp $	*/
 # 3 "msg_230.c"
 
-// Test for message: nonportable character comparison '%s %d' [230]
+// Test for message: nonportable character comparison '%s' [230]
 
 /* lint1-flags: -S -g -p -w */
 /* lint1-only-if: schar */
@@ -46,26 +46,26 @@ compare_plain_char(char c)
 void
 compare_plain_char_yoda(char c)
 {
-	/* expect+1: warning: nonportable character comparison '== -129' [230] */
+	/* expect+1: warning: nonportable character comparison '-129 == ?' [230] */
 	if (-129 == c)
 		return;
-	/* expect+1: warning: nonportable character comparison '== -128' [230] */
+	/* expect+1: warning: nonportable character comparison '-128 == ?' [230] */
 	if (-128 == c)
 		return;
-	/* expect+1: warning: nonportable character comparison '== -1' [230] */
+	/* expect+1: warning: nonportable character comparison '-1 == ?' [230] */
 	if (-1 == c)
 		return;
 	if (0 == c)
 		return;
 	if (127 == c)
 		return;
-	/* expect+1: warning: nonportable character comparison '== 128' [230] */
+	/* expect+1: warning: nonportable character comparison '128 == ?' [230] */
 	if (128 == c)
 		return;
-	/* expect+1: warning: nonportable character comparison '== 255' [230] */
+	/* expect+1: warning: nonportable character comparison '255 == ?' [230] */
 	if (255 == c)
 		return;
-	/* expect+1: warning: nonportable character comparison '== 256' [230] */
+	/* expect+1: warning: nonportable character comparison '256 == ?' [230] */
 	if (256 == c)
 		return;
 }

Index: src/tests/usr.bin/xlint/lint1/msg_230_uchar.c
diff -u src/tests/usr.bin/xlint/lint1/msg_230_uchar.c:1.9 src/tests/usr.bin/xlint/lint1/msg_230_uchar.c:1.10
--- src/tests/usr.bin/xlint/lint1/msg_230_uchar.c:1.9	Wed Jun 22 19:23:18 2022
+++ src/tests/usr.bin/xlint/lint1/msg_230_uchar.c	Wed Feb 22 22:30:40 2023
@@ -1,7 +1,7 @@
-/*	$NetBSD: msg_230_uchar.c,v 1.9 2022/06/22 19:23:18 rillig Exp $	*/
+/*	$NetBSD: msg_230_uchar.c,v 1.10 2023/02/22 22:30:40 rillig Exp $	*/
 # 3 "msg_230_uchar.c"
 
-// Test for message: nonportable character comparison '%s %d' [230]
+// Test for message: nonportable character comparison '%s' [230]
 
 /* lint1-flags: -S -g -p -w */
 /* lint1-only-if: uchar */
@@ -46,26 +46,26 @@ compare_plain_char(char c)
 void
 compare_plain_char_yoda(char c)
 {
-	/* expect+1: warning: nonportable character comparison '== -129' [230] */
+	/* expect+1: warning: nonportable character comparison '? == -129' [230] */
 	if (-129 == c)
 		return;
-	/* expect+1: warning: nonportable character comparison '== -128' [230] */
+	/* expect+1: warning: nonportable character comparison '? == -128' [230] */
 	if (-128 == c)
 		return;
-	/* expect+1: warning: nonportable character comparison '== -1' [230] */
+	/* expect+1: warning: nonportable character comparison '? == -1' [230] */
 	if (-1 == c)
 		return;
 	if (0 == c)
 		return;
 	if (127 == c)
 		return;
-	/* expect+1: warning: nonportable character comparison '== 128' [230] */
+	/* expect+1: warning: nonportable character comparison '? == 128' [230] */
 	if (128 == c)
 		return;
-	/* expect+1: warning: nonportable character comparison '== 255' [230] */
+	/* expect+1: warning: nonportable character comparison '? == 255' [230] */
 	if (255 == c)
 		return;
-	/* expect+1: warning: nonportable character comparison '== 256' [230] */
+	/* expect+1: warning: nonportable character comparison '? == 256' [230] */
 	if (256 == c)
 		return;
 }

Index: src/tests/usr.bin/xlint/lint1/platform_schar.c
diff -u src/tests/usr.bin/xlint/lint1/platform_schar.c:1.3 src/tests/usr.bin/xlint/lint1/platform_schar.c:1.4
--- src/tests/usr.bin/xlint/lint1/platform_schar.c:1.3	Wed Feb 22 22:12:35 2023
+++ src/tests/usr.bin/xlint/lint1/platform_schar.c	Wed Feb 22 22:30:40 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: platform_schar.c,v 1.3 2023/02/22 22:12:35 rillig Exp $	*/
+/*	$NetBSD: platform_schar.c,v 1.4 2023/02/22 22:30:40 rillig Exp $	*/
 # 3 "platform_schar.c"
 
 /*
@@ -10,6 +10,5 @@
 /* lint1-only-if: schar */
 
 /* CONSTCOND */
-/* FIXME: Wrong order in the diagnostic, should be '-128 <' instead. */
-/* expect+1: warning: nonportable character comparison '< -128' [230] */
+/* expect+1: warning: nonportable character comparison '-128 < ?' [230] */
 typedef int is_signed[(char)'\200' < (char)'\177' ? 1 : -1];

Index: src/usr.bin/xlint/lint1/err.c
diff -u src/usr.bin/xlint/lint1/err.c:1.188 src/usr.bin/xlint/lint1/err.c:1.189
--- src/usr.bin/xlint/lint1/err.c:1.188	Sun Feb 19 19:27:01 2023
+++ src/usr.bin/xlint/lint1/err.c	Wed Feb 22 22:30:40 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: err.c,v 1.188 2023/02/19 19:27:01 rillig Exp $	*/
+/*	$NetBSD: err.c,v 1.189 2023/02/22 22:30:40 rillig Exp $	*/
 
 /*
  * Copyright (c) 1994, 1995 Jochen Pohl
@@ -37,7 +37,7 @@
 
 #include <sys/cdefs.h>
 #if defined(__RCSID)
-__RCSID("$NetBSD: err.c,v 1.188 2023/02/19 19:27:01 rillig Exp $");
+__RCSID("$NetBSD: err.c,v 1.189 2023/02/22 22:30:40 rillig Exp $");
 #endif
 
 #include <limits.h>
@@ -285,7 +285,7 @@ static const char *const msgs[] = {
 	"const object '%s' should have initializer",		      /* 227 */
 	"function cannot return const or volatile object",	      /* 228 */
 	"converting '%s' to '%s' is questionable",		      /* 229 */
-	"nonportable character comparison '%s %d'",		      /* 230 */
+	"nonportable character comparison '%s'",		      /* 230 */
 	"argument '%s' unused in function '%s'",		      /* 231 */
 	"label '%s' unused in function '%s'",			      /* 232 */
 	"struct '%s' never defined",				      /* 233 */

Index: src/usr.bin/xlint/lint1/tree.c
diff -u src/usr.bin/xlint/lint1/tree.c:1.504 src/usr.bin/xlint/lint1/tree.c:1.505
--- src/usr.bin/xlint/lint1/tree.c:1.504	Sun Jan 29 18:16:48 2023
+++ src/usr.bin/xlint/lint1/tree.c	Wed Feb 22 22:30:40 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: tree.c,v 1.504 2023/01/29 18:16:48 rillig Exp $	*/
+/*	$NetBSD: tree.c,v 1.505 2023/02/22 22:30:40 rillig Exp $	*/
 
 /*
  * Copyright (c) 1994, 1995 Jochen Pohl
@@ -37,7 +37,7 @@
 
 #include <sys/cdefs.h>
 #if defined(__RCSID)
-__RCSID("$NetBSD: tree.c,v 1.504 2023/01/29 18:16:48 rillig Exp $");
+__RCSID("$NetBSD: tree.c,v 1.505 2023/02/22 22:30:40 rillig Exp $");
 #endif
 
 #include <float.h>
@@ -4634,13 +4634,19 @@ check_integer_comparison(op_t op, tnode_
 
 	if (hflag || pflag) {
 		if (lt == CHAR && is_out_of_char_range(rn)) {
-			/* nonportable character comparison '%s %d' */
-			warning(230, op_name(op), (int)rn->tn_val->v_quad);
+			char buf[128];
+			(void)snprintf(buf, sizeof(buf), "%s %d",
+			    op_name(op), (int)rn->tn_val->v_quad);
+			/* nonportable character comparison '%s' */
+			warning(230, buf);
 			return;
 		}
 		if (rt == CHAR && is_out_of_char_range(ln)) {
-			/* nonportable character comparison '%s %d' */
-			warning(230, op_name(op), (int)ln->tn_val->v_quad);
+			char buf[128];
+			(void)snprintf(buf, sizeof(buf), "%d %s ?",
+			    (int)ln->tn_val->v_quad, op_name(op));
+			/* nonportable character comparison '%s' */
+			warning(230, buf);
 			return;
 		}
 	}

Reply via email to