Module Name:    src
Committed By:   rillig
Date:           Mon Aug 23 17:47:34 UTC 2021

Modified Files:
        src/tests/usr.bin/xlint/lint1: lex_string.c lex_string.exp
            lex_wide_string.c lex_wide_string.exp msg_162.c msg_162.exp
            msg_230.c msg_230.exp

Log Message:
tests/lint: add tests for integer comparisons


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 src/tests/usr.bin/xlint/lint1/lex_string.c \
    src/tests/usr.bin/xlint/lint1/lex_string.exp \
    src/tests/usr.bin/xlint/lint1/msg_162.c \
    src/tests/usr.bin/xlint/lint1/msg_162.exp
cvs rdiff -u -r1.1 -r1.2 src/tests/usr.bin/xlint/lint1/lex_wide_string.c \
    src/tests/usr.bin/xlint/lint1/lex_wide_string.exp
cvs rdiff -u -r1.5 -r1.6 src/tests/usr.bin/xlint/lint1/msg_230.c
cvs rdiff -u -r1.4 -r1.5 src/tests/usr.bin/xlint/lint1/msg_230.exp

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/lex_string.c
diff -u src/tests/usr.bin/xlint/lint1/lex_string.c:1.2 src/tests/usr.bin/xlint/lint1/lex_string.c:1.3
--- src/tests/usr.bin/xlint/lint1/lex_string.c:1.2	Sat Jun 19 08:37:18 2021
+++ src/tests/usr.bin/xlint/lint1/lex_string.c	Mon Aug 23 17:47:34 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: lex_string.c,v 1.2 2021/06/19 08:37:18 rillig Exp $	*/
+/*	$NetBSD: lex_string.c,v 1.3 2021/08/23 17:47:34 rillig Exp $	*/
 # 3 "lex_string.c"
 
 /*
@@ -25,4 +25,9 @@ test(void)
 
 	/* expect+1: dubious escape \y [79] */
 	sink("\y");		/* unknown escape sequence */
+
+	sink("first" "second");
+
+	/* expect+1: error: cannot concatenate wide and regular string literals [292] */
+	sink("plain" L"wide");
 }
Index: src/tests/usr.bin/xlint/lint1/lex_string.exp
diff -u src/tests/usr.bin/xlint/lint1/lex_string.exp:1.2 src/tests/usr.bin/xlint/lint1/lex_string.exp:1.3
--- src/tests/usr.bin/xlint/lint1/lex_string.exp:1.2	Sat Jun 19 08:37:18 2021
+++ src/tests/usr.bin/xlint/lint1/lex_string.exp	Mon Aug 23 17:47:34 2021
@@ -1,2 +1,3 @@
 lex_string.c(24): error: no hex digits follow \x [74]
 lex_string.c(27): warning: dubious escape \y [79]
+lex_string.c(32): error: cannot concatenate wide and regular string literals [292]
Index: src/tests/usr.bin/xlint/lint1/msg_162.c
diff -u src/tests/usr.bin/xlint/lint1/msg_162.c:1.2 src/tests/usr.bin/xlint/lint1/msg_162.c:1.3
--- src/tests/usr.bin/xlint/lint1/msg_162.c:1.2	Sun Feb 21 09:07:58 2021
+++ src/tests/usr.bin/xlint/lint1/msg_162.c	Mon Aug 23 17:47:34 2021
@@ -1,7 +1,53 @@
-/*	$NetBSD: msg_162.c,v 1.2 2021/02/21 09:07:58 rillig Exp $	*/
+/*	$NetBSD: msg_162.c,v 1.3 2021/08/23 17:47:34 rillig Exp $	*/
 # 3 "msg_162.c"
 
 // Test for message: comparison of %s with %s, op %s [162]
 
-TODO: "Add example code that triggers the above message." /* expect: 249 */
-TODO: "Add example code that almost triggers the above message."
+/* lint1-extra-flags: -hp */
+
+void
+left_unsigned(unsigned int ui)
+{
+	if (ui < -5.0) {
+	}
+
+	/* expect+1: warning: comparison of unsigned int with negative constant, op < [162] */
+	if (ui < -5) {
+	}
+
+	/* expect+1: warning: comparison of unsigned int with 0, op < [162] */
+	if (ui < 0) {
+	}
+
+	/* expect+1: warning: comparison of unsigned int with 0, op >= [162] */
+	if (ui >= 0) {
+	}
+
+	/* expect+1: warning: comparison of unsigned int with 0, op <= [162] */
+	if (ui <= 0) {
+	}
+}
+
+void
+right_unsigned(unsigned int ui)
+{
+
+	if (-5.0 > ui) {
+	}
+
+	/* expect+1: warning: comparison of negative constant with unsigned int, op > [162] */
+	if (-5 > ui) {
+	}
+
+	/* expect+1: warning: comparison of 0 with unsigned int, op > [162] */
+	if (0 > ui) {
+	}
+
+	/* expect+1: warning: comparison of 0 with unsigned int, op <= [162] */
+	if (0 <= ui) {
+	}
+
+	/* expect+1: warning: comparison of 0 with unsigned int, op >= [162] */
+	if (0 >= ui) {
+	}
+}
Index: src/tests/usr.bin/xlint/lint1/msg_162.exp
diff -u src/tests/usr.bin/xlint/lint1/msg_162.exp:1.2 src/tests/usr.bin/xlint/lint1/msg_162.exp:1.3
--- src/tests/usr.bin/xlint/lint1/msg_162.exp:1.2	Sun Mar 21 20:45:00 2021
+++ src/tests/usr.bin/xlint/lint1/msg_162.exp	Mon Aug 23 17:47:34 2021
@@ -1 +1,8 @@
-msg_162.c(6): error: syntax error ':' [249]
+msg_162.c(15): warning: comparison of unsigned int with negative constant, op < [162]
+msg_162.c(19): warning: comparison of unsigned int with 0, op < [162]
+msg_162.c(23): warning: comparison of unsigned int with 0, op >= [162]
+msg_162.c(27): warning: comparison of unsigned int with 0, op <= [162]
+msg_162.c(39): warning: comparison of negative constant with unsigned int, op > [162]
+msg_162.c(43): warning: comparison of 0 with unsigned int, op > [162]
+msg_162.c(47): warning: comparison of 0 with unsigned int, op <= [162]
+msg_162.c(51): warning: comparison of 0 with unsigned int, op >= [162]

Index: src/tests/usr.bin/xlint/lint1/lex_wide_string.c
diff -u src/tests/usr.bin/xlint/lint1/lex_wide_string.c:1.1 src/tests/usr.bin/xlint/lint1/lex_wide_string.c:1.2
--- src/tests/usr.bin/xlint/lint1/lex_wide_string.c:1.1	Sat Jun 19 08:30:08 2021
+++ src/tests/usr.bin/xlint/lint1/lex_wide_string.c	Mon Aug 23 17:47:34 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: lex_wide_string.c,v 1.1 2021/06/19 08:30:08 rillig Exp $	*/
+/*	$NetBSD: lex_wide_string.c,v 1.2 2021/08/23 17:47:34 rillig Exp $	*/
 # 3 "lex_wide_string.c"
 
 /*
@@ -25,4 +25,9 @@ test(void)
 
 	/* expect+1: dubious escape \y [79] */
 	sink(L"\y");
+
+	sink(L"first" L"second");
+
+	/* expect+1: error: cannot concatenate wide and regular string literals [292] */
+	sink(L"wide" "plain");
 }
Index: src/tests/usr.bin/xlint/lint1/lex_wide_string.exp
diff -u src/tests/usr.bin/xlint/lint1/lex_wide_string.exp:1.1 src/tests/usr.bin/xlint/lint1/lex_wide_string.exp:1.2
--- src/tests/usr.bin/xlint/lint1/lex_wide_string.exp:1.1	Sat Jun 19 08:30:08 2021
+++ src/tests/usr.bin/xlint/lint1/lex_wide_string.exp	Mon Aug 23 17:47:34 2021
@@ -1,2 +1,3 @@
 lex_wide_string.c(24): error: no hex digits follow \x [74]
 lex_wide_string.c(27): warning: dubious escape \y [79]
+lex_wide_string.c(32): error: cannot concatenate wide and regular string literals [292]

Index: src/tests/usr.bin/xlint/lint1/msg_230.c
diff -u src/tests/usr.bin/xlint/lint1/msg_230.c:1.5 src/tests/usr.bin/xlint/lint1/msg_230.c:1.6
--- src/tests/usr.bin/xlint/lint1/msg_230.c:1.5	Sat Aug 21 11:50:57 2021
+++ src/tests/usr.bin/xlint/lint1/msg_230.c	Mon Aug 23 17:47:34 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: msg_230.c,v 1.5 2021/08/21 11:50:57 rillig Exp $	*/
+/*	$NetBSD: msg_230.c,v 1.6 2021/08/23 17:47:34 rillig Exp $	*/
 # 3 "msg_230.c"
 
 // Test for message: nonportable character comparison, op %s [230]
@@ -31,4 +31,11 @@ void example(char c, unsigned char uc, s
 		return;
 	if (sc <= -1)
 		return;
+
+	/* expect+1: warning: nonportable character comparison, op <= [230] */
+	if (-1 <= c)
+		return;
+	/* expect+1: warning: nonportable character comparison, op <= [230] */
+	if (256 <= c)
+		return;
 }

Index: src/tests/usr.bin/xlint/lint1/msg_230.exp
diff -u src/tests/usr.bin/xlint/lint1/msg_230.exp:1.4 src/tests/usr.bin/xlint/lint1/msg_230.exp:1.5
--- src/tests/usr.bin/xlint/lint1/msg_230.exp:1.4	Sat Jul  3 19:31:22 2021
+++ src/tests/usr.bin/xlint/lint1/msg_230.exp	Mon Aug 23 17:47:34 2021
@@ -1,3 +1,5 @@
 msg_230.c(14): warning: comparison of unsigned char with 0, op < [162]
 msg_230.c(27): warning: nonportable character comparison, op <= [230]
 msg_230.c(30): warning: comparison of unsigned char with negative constant, op <= [162]
+msg_230.c(36): warning: nonportable character comparison, op <= [230]
+msg_230.c(39): warning: nonportable character comparison, op <= [230]

Reply via email to