Module Name: src Committed By: rillig Date: Sat Feb 27 13:43:36 UTC 2021
Modified Files: src/tests/usr.bin/xlint/lint1: msg_130.c msg_130.exp msg_156.c msg_156.exp Log Message: tests/lint: add more tests for enum mismatch To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.4 src/tests/usr.bin/xlint/lint1/msg_130.c \ src/tests/usr.bin/xlint/lint1/msg_156.c \ src/tests/usr.bin/xlint/lint1/msg_156.exp cvs rdiff -u -r1.2 -r1.3 src/tests/usr.bin/xlint/lint1/msg_130.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_130.c diff -u src/tests/usr.bin/xlint/lint1/msg_130.c:1.3 src/tests/usr.bin/xlint/lint1/msg_130.c:1.4 --- src/tests/usr.bin/xlint/lint1/msg_130.c:1.3 Sun Jan 31 11:12:07 2021 +++ src/tests/usr.bin/xlint/lint1/msg_130.c Sat Feb 27 13:43:36 2021 @@ -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 */ } Index: src/tests/usr.bin/xlint/lint1/msg_156.c diff -u src/tests/usr.bin/xlint/lint1/msg_156.c:1.3 src/tests/usr.bin/xlint/lint1/msg_156.c:1.4 --- src/tests/usr.bin/xlint/lint1/msg_156.c:1.3 Sun Jan 31 11:12:07 2021 +++ src/tests/usr.bin/xlint/lint1/msg_156.c Sat Feb 27 13:43:36 2021 @@ -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 @@ enum size { 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 */ } Index: src/tests/usr.bin/xlint/lint1/msg_156.exp diff -u src/tests/usr.bin/xlint/lint1/msg_156.exp:1.3 src/tests/usr.bin/xlint/lint1/msg_156.exp:1.4 --- src/tests/usr.bin/xlint/lint1/msg_156.exp:1.3 Thu Jan 14 07:42:31 2021 +++ src/tests/usr.bin/xlint/lint1/msg_156.exp Sat Feb 27 13:43:36 2021 @@ -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] Index: src/tests/usr.bin/xlint/lint1/msg_130.exp diff -u src/tests/usr.bin/xlint/lint1/msg_130.exp:1.2 src/tests/usr.bin/xlint/lint1/msg_130.exp:1.3 --- src/tests/usr.bin/xlint/lint1/msg_130.exp:1.2 Fri Jan 8 21:25:03 2021 +++ src/tests/usr.bin/xlint/lint1/msg_130.exp Sat Feb 27 13:43:36 2021 @@ -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]