Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/tests/usr.bin/xlint/lint1 tests/lint: add more tests for enu...



details:   https://anonhg.NetBSD.org/src/rev/8015fa6013b3
branches:  trunk
changeset: 959857:8015fa6013b3
user:      rillig <rillig%NetBSD.org@localhost>
date:      Sat Feb 27 13:43:36 2021 +0000

description:
tests/lint: add more tests for enum mismatch

diffstat:

 tests/usr.bin/xlint/lint1/msg_130.c   |  31 ++++++++++++++++++++++++++-----
 tests/usr.bin/xlint/lint1/msg_130.exp |   4 +++-
 tests/usr.bin/xlint/lint1/msg_156.c   |  17 ++++++++++-------
 tests/usr.bin/xlint/lint1/msg_156.exp |   3 ++-
 4 files changed, 41 insertions(+), 14 deletions(-)

diffs (101 lines):

diff -r 9189cadf585f -r 8015fa6013b3 tests/usr.bin/xlint/lint1/msg_130.c
--- a/tests/usr.bin/xlint/lint1/msg_130.c       Sat Feb 27 13:02:42 2021 +0000
+++ b/tests/usr.bin/xlint/lint1/msg_130.c       Sat Feb 27 13:43:36 2021 +0000
@@ -1,18 +1,39 @@
-/*     $NetBSD: msg_130.c,v 1.3 2021/01/31 11:12:07 rillig Exp $       */
+/*     $NetBSD: msg_130.c,v 1.4 2021/02/27 13:43:36 rillig Exp $       */
 # 3 "msg_130.c"
 
 // Test for message: enum type mismatch, op %s [130]
 
 enum color {
-       RED, GREEN, BLUE
+       RED     = 1 << 0,
+       GREEN   = 1 << 1,
+       BLUE    = 1 << 2
+};
+
+enum size {
+       SMALL,
+       MEDIUM,
+       LARGE
 };
 
 enum daytime {
        NIGHT, MORNING, NOON, EVENING
 };
 
-int
-example(_Bool cond)
+void sink(_Bool);
+
+void
+example(_Bool cond, enum color c, enum size s)
 {
-       return cond ? GREEN : MORNING;  /* expect: 130 */
+       sink(cond ? GREEN : MORNING);   /* expect: 130 */
+
+       sink(c != s);                   /* expect: 130 */
+       sink(c == s);                   /* expect: 130 */
+       sink((c & MEDIUM) != 0);        /* might be useful to warn about */
+       sink((c | MEDIUM) != 0);        /* might be useful to warn about */
+
+       c |= MEDIUM;                    /* might be useful to warn about */
+       c &= MEDIUM;                    /* might be useful to warn about */
+
+       /* The cast to unsigned is required by GCC at WARNS=6. */
+       c &= ~(unsigned)MEDIUM;         /* might be useful to warn about */
 }
diff -r 9189cadf585f -r 8015fa6013b3 tests/usr.bin/xlint/lint1/msg_130.exp
--- a/tests/usr.bin/xlint/lint1/msg_130.exp     Sat Feb 27 13:02:42 2021 +0000
+++ b/tests/usr.bin/xlint/lint1/msg_130.exp     Sat Feb 27 13:43:36 2021 +0000
@@ -1,1 +1,3 @@
-msg_130.c(17): warning: enum type mismatch, op : [130]
+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]
diff -r 9189cadf585f -r 8015fa6013b3 tests/usr.bin/xlint/lint1/msg_156.c
--- a/tests/usr.bin/xlint/lint1/msg_156.c       Sat Feb 27 13:02:42 2021 +0000
+++ b/tests/usr.bin/xlint/lint1/msg_156.c       Sat Feb 27 13:43:36 2021 +0000
@@ -1,12 +1,12 @@
-/*     $NetBSD: msg_156.c,v 1.3 2021/01/31 11:12:07 rillig Exp $       */
+/*     $NetBSD: msg_156.c,v 1.4 2021/02/27 13:43:36 rillig Exp $       */
 # 3 "msg_156.c"
 
 // Test for message: enum type mismatch, arg #%d [156]
 
 enum color {
-       RED,
-       GREEN,
-       BLUE
+       RED     = 1 << 0,
+       GREEN   = 1 << 1,
+       BLUE    = 1 << 2
 };
 
 enum size {
@@ -15,11 +15,14 @@
        LARGE
 };
 
-void
-print_color(enum color);
+void print_color(enum color);
 
 void
-example(void)
+example(enum color c, enum size s)
 {
+       print_color(GREEN);
+       print_color(c);
+
        print_color(MEDIUM);            /* expect: 156 */
+       print_color(s);                 /* expect: 156 */
 }
diff -r 9189cadf585f -r 8015fa6013b3 tests/usr.bin/xlint/lint1/msg_156.exp
--- a/tests/usr.bin/xlint/lint1/msg_156.exp     Sat Feb 27 13:02:42 2021 +0000
+++ b/tests/usr.bin/xlint/lint1/msg_156.exp     Sat Feb 27 13:43:36 2021 +0000
@@ -1,1 +1,2 @@
-msg_156.c(24): warning: enum type mismatch, arg #1 (enum color != enum size) [156]
+msg_156.c(26): warning: enum type mismatch, arg #1 (enum color != enum size) [156]
+msg_156.c(27): warning: enum type mismatch, arg #1 (enum color != enum size) [156]



Home | Main Index | Thread Index | Old Index