msg_230.c revision 1.7 1 1.7 rillig /* $NetBSD: msg_230.c,v 1.7 2021/08/28 14:45:19 rillig Exp $ */
2 1.1 rillig # 3 "msg_230.c"
3 1.1 rillig
4 1.1 rillig // Test for message: nonportable character comparison, op %s [230]
5 1.1 rillig
6 1.2 rillig /* lint1-flags: -S -g -p -w */
7 1.5 rillig /* lint1-only-if: schar */
8 1.2 rillig
9 1.7 rillig /*
10 1.7 rillig * C11 6.2.5p15 defines that 'char' has the same range, representation, and
11 1.7 rillig * behavior as either 'signed char' or 'unsigned char'.
12 1.7 rillig *
13 1.7 rillig * The portable range of 'char' is from 0 to 127 since all lint platforms
14 1.7 rillig * define CHAR_SIZE to be 8.
15 1.7 rillig *
16 1.7 rillig * See msg_162.c, which covers 'signed char' and 'unsigned char'.
17 1.7 rillig */
18 1.7 rillig
19 1.7 rillig void
20 1.7 rillig compare_plain_char(char c)
21 1.2 rillig {
22 1.7 rillig /* expect+1: warning: nonportable character comparison, op == [230] */
23 1.7 rillig if (c == -129)
24 1.7 rillig return;
25 1.7 rillig /* expect+1: warning: nonportable character comparison, op == [230] */
26 1.7 rillig if (c == -128)
27 1.7 rillig return;
28 1.7 rillig /* expect+1: warning: nonportable character comparison, op == [230] */
29 1.7 rillig if (c == -1)
30 1.7 rillig return;
31 1.7 rillig if (c == 0)
32 1.4 rillig return;
33 1.7 rillig if (c == 127)
34 1.4 rillig return;
35 1.7 rillig /* expect+1: warning: nonportable character comparison, op == [230] */
36 1.7 rillig if (c == 128)
37 1.7 rillig return;
38 1.7 rillig /* expect+1: warning: nonportable character comparison, op == [230] */
39 1.7 rillig if (c == 255)
40 1.7 rillig return;
41 1.7 rillig /* expect+1: warning: nonportable character comparison, op == [230] */
42 1.7 rillig if (c == 256)
43 1.7 rillig return;
44 1.7 rillig }
45 1.7 rillig
46 1.7 rillig void
47 1.7 rillig compare_plain_char_yoda(char c)
48 1.7 rillig {
49 1.7 rillig /* expect+1: warning: nonportable character comparison, op == [230] */
50 1.7 rillig if (-129 == c)
51 1.7 rillig return;
52 1.7 rillig /* expect+1: warning: nonportable character comparison, op == [230] */
53 1.7 rillig if (-128 == c)
54 1.7 rillig return;
55 1.7 rillig /* expect+1: warning: nonportable character comparison, op == [230] */
56 1.7 rillig if (-1 == c)
57 1.7 rillig return;
58 1.7 rillig if (0 == c)
59 1.7 rillig return;
60 1.7 rillig if (127 == c)
61 1.7 rillig return;
62 1.7 rillig /* expect+1: warning: nonportable character comparison, op == [230] */
63 1.7 rillig if (128 == c)
64 1.7 rillig return;
65 1.7 rillig /* expect+1: warning: nonportable character comparison, op == [230] */
66 1.7 rillig if (255 == c)
67 1.7 rillig return;
68 1.7 rillig /* expect+1: warning: nonportable character comparison, op == [230] */
69 1.7 rillig if (256 == c)
70 1.7 rillig return;
71 1.7 rillig }
72 1.7 rillig
73 1.7 rillig void
74 1.7 rillig compare_lt(char c)
75 1.7 rillig {
76 1.7 rillig
77 1.7 rillig /* expect+1: warning: nonportable character comparison, op > [230] */
78 1.7 rillig if (c > -2)
79 1.7 rillig return;
80 1.7 rillig /* expect+1: warning: nonportable character comparison, op >= [230] */
81 1.7 rillig if (c >= -1)
82 1.4 rillig return;
83 1.2 rillig
84 1.2 rillig /*
85 1.7 rillig * XXX: The following two comparisons have the same effect, yet lint
86 1.7 rillig * only warns about one of them.
87 1.4 rillig */
88 1.7 rillig /* expect+1: warning: nonportable character comparison, op > [230] */
89 1.7 rillig if (c > -1)
90 1.7 rillig return;
91 1.7 rillig if (c >= 0)
92 1.4 rillig return;
93 1.7 rillig
94 1.7 rillig /*
95 1.7 rillig * XXX: The following two comparisons have the same effect, yet lint
96 1.7 rillig * only warns about one of them.
97 1.7 rillig */
98 1.7 rillig if (c > 127)
99 1.4 rillig return;
100 1.7 rillig /* expect+1: warning: nonportable character comparison, op >= [230] */
101 1.7 rillig if (c >= 128)
102 1.4 rillig return;
103 1.6 rillig
104 1.7 rillig /* expect+1: warning: nonportable character comparison, op > [230] */
105 1.7 rillig if (c > 128)
106 1.6 rillig return;
107 1.7 rillig /* expect+1: warning: nonportable character comparison, op >= [230] */
108 1.7 rillig if (c >= 129)
109 1.6 rillig return;
110 1.2 rillig }
111