msg_367.c revision 1.3 1 1.3 rillig /* $NetBSD: msg_367.c,v 1.3 2024/08/31 06:57:31 rillig Exp $ */
2 1.1 rillig # 3 "msg_367.c"
3 1.1 rillig
4 1.1 rillig // Test for message: empty description in '%.*s' [367]
5 1.1 rillig
6 1.1 rillig /*
7 1.1 rillig * Each bit or field or comparison value gets a description. If such a
8 1.1 rillig * description is empty, the generated output will contain empty angle
9 1.1 rillig * brackets or multiple adjacent commas or commas adjacent to an angle
10 1.1 rillig * bracket, such as '<,,,,>'.
11 1.1 rillig */
12 1.1 rillig
13 1.1 rillig /* lint1-extra-flags: -X 351 */
14 1.1 rillig
15 1.1 rillig typedef typeof(sizeof(0)) size_t;
16 1.1 rillig typedef unsigned long long uint64_t;
17 1.1 rillig
18 1.3 rillig int snprintb(char *, size_t, const char *, uint64_t);
19 1.1 rillig
20 1.1 rillig void
21 1.2 rillig old_style(unsigned u32)
22 1.2 rillig {
23 1.2 rillig char buf[64];
24 1.2 rillig
25 1.2 rillig /* expect+10: warning: empty description in '\001' [367] */
26 1.2 rillig /* expect+9: warning: empty description in '\002' [367] */
27 1.2 rillig /* expect+8: warning: empty description in '\003' [367] */
28 1.2 rillig /* expect+7: warning: empty description in '\004' [367] */
29 1.2 rillig snprintb(buf, sizeof(buf),
30 1.2 rillig "\020"
31 1.2 rillig "\001"
32 1.2 rillig "\002"
33 1.2 rillig "\003"
34 1.2 rillig "\004",
35 1.2 rillig u32);
36 1.2 rillig
37 1.2 rillig /* expect+10: warning: empty description in '\001' [367] */
38 1.2 rillig /* expect+9: warning: empty description in '\002' [367] */
39 1.2 rillig /* expect+8: warning: empty description in '\003' [367] */
40 1.2 rillig /* expect+7: warning: empty description in '\004' [367] */
41 1.2 rillig snprintb(buf, sizeof(buf),
42 1.2 rillig "\020"
43 1.2 rillig "\001" "" ""
44 1.2 rillig "\002" "" ""
45 1.2 rillig "\003" "" ""
46 1.2 rillig "\004" "" "",
47 1.2 rillig u32);
48 1.2 rillig
49 1.2 rillig // Single-letter descriptions are not empty.
50 1.2 rillig snprintb(buf, sizeof(buf),
51 1.2 rillig "\020"
52 1.2 rillig "\001a"
53 1.2 rillig "\002b"
54 1.2 rillig "\003c"
55 1.2 rillig "\004d",
56 1.2 rillig u32);
57 1.2 rillig }
58 1.2 rillig
59 1.2 rillig void
60 1.2 rillig new_style(uint64_t u64)
61 1.1 rillig {
62 1.1 rillig char buf[64];
63 1.1 rillig
64 1.1 rillig /* expect+4: warning: empty description in 'b\000\0' [367] */
65 1.1 rillig snprintb(buf, sizeof(buf),
66 1.1 rillig "\177\020"
67 1.1 rillig "b\000\0",
68 1.2 rillig u64);
69 1.1 rillig
70 1.1 rillig /* expect+4: warning: empty description in 'f\000\010\0' [367] */
71 1.1 rillig snprintb(buf, sizeof(buf),
72 1.1 rillig "\177\020"
73 1.1 rillig "f\000\010\0",
74 1.2 rillig u64);
75 1.1 rillig
76 1.1 rillig // No warning, as 'F' does not take a description.
77 1.1 rillig // If there were a description, it would simply be skipped.
78 1.1 rillig snprintb(buf, sizeof(buf),
79 1.1 rillig "\177\020"
80 1.1 rillig "F\000\010\0",
81 1.2 rillig u64);
82 1.1 rillig
83 1.1 rillig /* expect+4: warning: empty description in '=\000\0' [367] */
84 1.1 rillig snprintb(buf, sizeof(buf),
85 1.1 rillig "\177\020"
86 1.1 rillig "=\000\0",
87 1.2 rillig u64);
88 1.1 rillig
89 1.1 rillig /* expect+4: warning: empty description in ':\000\0' [367] */
90 1.1 rillig snprintb(buf, sizeof(buf),
91 1.1 rillig "\177\020"
92 1.1 rillig ":\000\0",
93 1.2 rillig u64);
94 1.1 rillig
95 1.1 rillig /* expect+4: warning: empty description in '*\0' [367] */
96 1.1 rillig snprintb(buf, sizeof(buf),
97 1.1 rillig "\177\020"
98 1.1 rillig "*\0",
99 1.2 rillig u64);
100 1.2 rillig
101 1.2 rillig // Single-letter descriptions are not empty.
102 1.2 rillig snprintb(buf, sizeof(buf),
103 1.2 rillig "\177\020"
104 1.2 rillig "b\000b\0"
105 1.2 rillig "f\001\001f\0"
106 1.2 rillig "F\002\002F\0"
107 1.2 rillig "=\000z\0"
108 1.2 rillig ":\001o\0"
109 1.2 rillig "*d\0",
110 1.2 rillig u64 >> 1);
111 1.1 rillig
112 1.2 rillig /* expect+6: warning: empty description in 'b\001""""""\0' [367] */
113 1.2 rillig /* expect+5: warning: empty description in 'b\003""""""\0' [367] */
114 1.2 rillig snprintb(buf, sizeof(buf),
115 1.2 rillig "\177\020"
116 1.2 rillig "b\001" "" "" "\0"
117 1.2 rillig "b\003" "" "" "\0",
118 1.2 rillig u64);
119 1.1 rillig }
120