Module Name: src
Committed By: rillig
Date: Sun Jan 17 16:00:16 UTC 2021
Modified Files:
src/tests/usr.bin/xlint/lint1: msg_123.c msg_123.exp
Log Message:
lint: add test for ordered comparison between incompatible types
To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 src/tests/usr.bin/xlint/lint1/msg_123.c \
src/tests/usr.bin/xlint/lint1/msg_123.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/msg_123.c
diff -u src/tests/usr.bin/xlint/lint1/msg_123.c:1.1 src/tests/usr.bin/xlint/lint1/msg_123.c:1.2
--- src/tests/usr.bin/xlint/lint1/msg_123.c:1.1 Sat Jan 2 10:22:43 2021
+++ src/tests/usr.bin/xlint/lint1/msg_123.c Sun Jan 17 16:00:16 2021
@@ -1,7 +1,28 @@
-/* $NetBSD: msg_123.c,v 1.1 2021/01/02 10:22:43 rillig Exp $ */
+/* $NetBSD: msg_123.c,v 1.2 2021/01/17 16:00:16 rillig Exp $ */
# 3 "msg_123.c"
// Test for message: illegal combination of %s (%s) and %s (%s), op %s [123]
-TODO: "Add example code that triggers the above message."
-TODO: "Add example code that almost triggers the above message."
+void ok(_Bool);
+void bad(_Bool);
+
+void
+compare(_Bool b, int i, double d, const char *p)
+{
+ ok(b < b);
+ ok(b < i);
+ ok(b < d);
+ bad(b < p); /* expect: 123 */
+ ok(i < b);
+ ok(i < i);
+ ok(i < d);
+ bad(i < p); /* expect: 123 */
+ ok(d < b);
+ ok(d < i);
+ ok(d < d);
+ bad(d < p); /* expect: 107 */
+ bad(p < b); /* expect: 123 */
+ bad(p < i); /* expect: 123 */
+ bad(p < d); /* expect: 107 */
+ ok(p < p);
+}
Index: src/tests/usr.bin/xlint/lint1/msg_123.exp
diff -u src/tests/usr.bin/xlint/lint1/msg_123.exp:1.1 src/tests/usr.bin/xlint/lint1/msg_123.exp:1.2
--- src/tests/usr.bin/xlint/lint1/msg_123.exp:1.1 Sat Jan 2 10:22:43 2021
+++ src/tests/usr.bin/xlint/lint1/msg_123.exp Sun Jan 17 16:00:16 2021
@@ -1 +1,6 @@
-msg_123.c(6): syntax error ':' [249]
+msg_123.c(15): warning: illegal combination of integer (_Bool) and pointer (pointer to const char), op < [123]
+msg_123.c(19): warning: illegal combination of integer (int) and pointer (pointer to const char), op < [123]
+msg_123.c(23): operands of '<' have incompatible types (double != pointer) [107]
+msg_123.c(24): warning: illegal combination of pointer (pointer to const char) and integer (_Bool), op < [123]
+msg_123.c(25): warning: illegal combination of pointer (pointer to const char) and integer (int), op < [123]
+msg_123.c(26): operands of '<' have incompatible types (pointer != double) [107]