Module Name: src Committed By: rillig Date: Tue Feb 6 22:47:21 UTC 2024
Modified Files: src/usr.bin/xlint/lint1: Makefile check-msgs.lua err.c makeman Log Message: lint: tab-align message numbers in err.c By replacing block comments with end-of-line comments, the comments take up less space and thus no longer require to be indented by 6 spaces. The messages and their comments are used in 3 places: the manual page lint.7, the err-msgs.h header for debug mode, and check-msgs.lua to verify that the comments above the message IDs correspond to the actual messages. No functional change. To generate a diff of this commit: cvs rdiff -u -r1.102 -r1.103 src/usr.bin/xlint/lint1/Makefile cvs rdiff -u -r1.20 -r1.21 src/usr.bin/xlint/lint1/check-msgs.lua cvs rdiff -u -r1.224 -r1.225 src/usr.bin/xlint/lint1/err.c cvs rdiff -u -r1.8 -r1.9 src/usr.bin/xlint/lint1/makeman Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/usr.bin/xlint/lint1/Makefile diff -u src/usr.bin/xlint/lint1/Makefile:1.102 src/usr.bin/xlint/lint1/Makefile:1.103 --- src/usr.bin/xlint/lint1/Makefile:1.102 Sat Jul 29 10:45:00 2023 +++ src/usr.bin/xlint/lint1/Makefile Tue Feb 6 22:47:21 2024 @@ -1,4 +1,4 @@ -# $NetBSD: Makefile,v 1.102 2023/07/29 10:45:00 rillig Exp $ +# $NetBSD: Makefile,v 1.103 2024/02/06 22:47:21 rillig Exp $ .include <bsd.own.mk> @@ -78,7 +78,7 @@ DPADD+= ${LIBL} err-msgs.h: err.c ${_MKTARGET_CREATE} sp='[[:space:]]*'; \ - from="^$$sp\(\"[^\"].*\"\)\,$$sp/\*$$sp\(Q*[0-9][0-9]*\)$$sp\*/\$$"; \ + from="^$$sp\(\"[^\"].*\"\)\,$$sp// \(Q*[0-9][0-9]*\)\$$"; \ ${TOOL_SED} -n -e "s,$$from,#define MSG_\2 \1,p" < ${.ALLSRC:M*err.c} > ${.TARGET}.tmp mv -f ${.TARGET}.tmp ${.TARGET} Index: src/usr.bin/xlint/lint1/check-msgs.lua diff -u src/usr.bin/xlint/lint1/check-msgs.lua:1.20 src/usr.bin/xlint/lint1/check-msgs.lua:1.21 --- src/usr.bin/xlint/lint1/check-msgs.lua:1.20 Sat Aug 12 18:05:51 2023 +++ src/usr.bin/xlint/lint1/check-msgs.lua Tue Feb 6 22:47:21 2024 @@ -1,5 +1,5 @@ #! /usr/bin/lua --- $NetBSD: check-msgs.lua,v 1.20 2023/08/12 18:05:51 rillig Exp $ +-- $NetBSD: check-msgs.lua,v 1.21 2024/02/06 22:47:21 rillig Exp $ --[[ @@ -16,7 +16,7 @@ local function load_messages() local f = assert(io.open("err.c")) for line in f:lines() do - local msg, id = line:match("%s*\"(.+)\",%s*/%*%s*(Q?%d+)%s*%*/$") + local msg, id = line:match("%s*\"(.+)\",%s*// (Q?%d+)$") if msg ~= nil then msgs[id] = msg end Index: src/usr.bin/xlint/lint1/err.c diff -u src/usr.bin/xlint/lint1/err.c:1.224 src/usr.bin/xlint/lint1/err.c:1.225 --- src/usr.bin/xlint/lint1/err.c:1.224 Sat Feb 3 20:10:10 2024 +++ src/usr.bin/xlint/lint1/err.c Tue Feb 6 22:47:21 2024 @@ -1,4 +1,4 @@ -/* $NetBSD: err.c,v 1.224 2024/02/03 20:10:10 rillig Exp $ */ +/* $NetBSD: err.c,v 1.225 2024/02/06 22:47:21 rillig Exp $ */ /* * Copyright (c) 1994, 1995 Jochen Pohl @@ -37,7 +37,7 @@ #include <sys/cdefs.h> #if defined(__RCSID) -__RCSID("$NetBSD: err.c,v 1.224 2024/02/03 20:10:10 rillig Exp $"); +__RCSID("$NetBSD: err.c,v 1.225 2024/02/06 22:47:21 rillig Exp $"); #endif #include <limits.h> @@ -55,363 +55,363 @@ int sytxerr; static const char *const msgs[] = { - "empty declaration", /* 0 */ - "old-style declaration; add 'int'", /* 1 */ - "empty declaration", /* 2 */ - "'%s' declared in parameter declaration list", /* 3 */ - "illegal type combination", /* 4 */ - "modifying typedef with '%s'; only qualifiers allowed", /* 5 */ - "use 'double' instead of 'long float'", /* 6 */ - "only one storage class allowed", /* 7 */ - "illegal storage class", /* 8 */ - "only 'register' is valid as storage class in parameter", /* 9 */ - "duplicate '%s'", /* 10 */ - "bit-field initializer out of range", /* 11 */ - "compiler takes size of function", /* 12 */ - "incomplete enum type '%s'", /* 13 */ - "", /* 14 */ - "function returns illegal type '%s'", /* 15 */ - "array of function is illegal", /* 16 */ - "null dimension", /* 17 */ - "illegal use of 'void'", /* 18 */ - "void type for '%s'", /* 19 */ - "negative array dimension (%d)", /* 20 */ - "redeclaration of formal parameter '%s'", /* 21 */ - "incomplete or misplaced function definition", /* 22 */ - "undefined label '%s'", /* 23 */ - "cannot initialize function '%s'", /* 24 */ - "cannot initialize typedef '%s'", /* 25 */ - "cannot initialize extern declaration '%s'", /* 26 */ - "redeclaration of '%s'", /* 27 */ - "redefinition of '%s'", /* 28 */ - "'%s' was previously declared extern, becomes static", /* 29 */ - "redeclaration of '%s'; C90 or later require static", /* 30 */ - "'%s' has incomplete type '%s'", /* 31 */ - "type of parameter '%s' defaults to 'int'", /* 32 */ - "duplicate member name '%s'", /* 33 */ - "nonportable bit-field type '%s'", /* 34 */ - "illegal bit-field type '%s'", /* 35 */ - "illegal bit-field size: %d", /* 36 */ - "zero size bit-field", /* 37 */ - "function illegal in structure or union", /* 38 */ - "zero-sized array '%s' in struct requires C99 or later", /* 39 */ - "", /* never used */ /* 40 */ - "bit-field in union is very unusual", /* 41 */ - "forward reference to enum type", /* 42 */ - "redefinition of '%s' hides earlier one", /* 43 */ - "declaration of '%s %s' introduces new type in C90 or later", /* 44 */ - "base type is really '%s %s'", /* 45 */ - "%s tag '%s' redeclared as %s", /* 46 */ - "zero sized %s is a C99 feature", /* 47 */ - "enumeration value '%s' overflows", /* 48 */ - "anonymous struct/union members is a C11 feature", /* 49 */ - "parameter '%s' has function type, should be pointer", /* 50 */ - "parameter mismatch: %d declared, %d defined", /* 51 */ - "cannot initialize parameter '%s'", /* 52 */ - "declared parameter '%s' is missing", /* 53 */ - "trailing ',' in enum declaration requires C99 or later", /* 54 */ - "integral constant expression expected", /* 55 */ - "integral constant too large", /* 56 */ - "enumeration constant '%s' hides parameter", /* 57 */ - "type of '%s' does not match prototype", /* 58 */ - "formal parameter #%d lacks name", /* 59 */ - "void must be sole parameter", /* 60 */ - "void parameter '%s' cannot have name", /* 61 */ - "function prototype parameters must have types", /* 62 */ - "prototype does not match old-style definition", /* 63 */ - "()-less function definition", /* 64 */ - "'%s' has no named members", /* 65 */ - "", /* 66 */ - "cannot return incomplete type", /* 67 */ - "typedef already qualified with '%s'", /* 68 */ - "inappropriate qualifiers with 'void'", /* 69 */ - "", /* unused */ /* 70 */ - "too many characters in character constant", /* 71 */ - "typedef declares no type name", /* 72 */ - "empty character constant", /* 73 */ - "no hex digits follow \\x", /* 74 */ - "overflow in hex escape", /* 75 */ - "character escape does not fit in character", /* 76 */ - "bad octal digit '%c'", /* 77 */ - "", /* unused */ /* 78 */ - "dubious escape \\%c", /* 79 */ - "dubious escape \\%o", /* 80 */ - "\\a undefined in traditional C", /* 81 */ - "\\x undefined in traditional C", /* 82 */ - "storage class after type is obsolescent", /* 83 */ - "C90 to C17 require formal parameter before '...'", /* 84 */ - "dubious tag declaration '%s %s'", /* 85 */ - "automatic '%s' hides external declaration", /* 86 */ - "static '%s' hides external declaration", /* 87 */ - "typedef '%s' hides external declaration", /* 88 */ - "typedef '%s' redeclared", /* 89 */ - "inconsistent redeclaration of extern '%s'", /* 90 */ - "declaration of '%s' hides parameter", /* 91 */ - "inconsistent redeclaration of static '%s'", /* 92 */ - "dubious static function '%s' at block level", /* 93 */ - "function '%s' has illegal storage class", /* 94 */ - "declaration of '%s' hides earlier one", /* 95 */ - "cannot dereference non-pointer type '%s'", /* 96 */ - "suffix 'U' is illegal in traditional C", /* 97 */ - "suffixes 'F' and 'L' are illegal in traditional C", /* 98 */ - "'%s' undefined", /* 99 */ - "unary '+' is illegal in traditional C", /* 100 */ - "type '%s' does not have member '%s'", /* 101 */ - "illegal use of member '%s'", /* 102 */ - "left operand of '.' must be struct or union, not '%s'", /* 103 */ - "left operand of '->' must be pointer to struct or union, not '%s'", /* 104 */ - "non-unique member requires struct/union %s", /* 105 */ - "left operand of '->' must be pointer", /* 106 */ - "operands of '%s' have incompatible types '%s' and '%s'", /* 107 */ - "operand of '%s' has invalid type '%s'", /* 108 */ - "void type illegal in expression", /* 109 */ - "pointer to function is not allowed here", /* 110 */ - "unacceptable operand of '%s'", /* 111 */ - "cannot take address of bit-field", /* 112 */ - "cannot take address of register '%s'", /* 113 */ - "%soperand of '%s' must be lvalue", /* 114 */ - "%soperand of '%s' must be modifiable lvalue", /* 115 */ - "illegal pointer subtraction", /* 116 */ - "bitwise '%s' on signed value possibly nonportable", /* 117 */ - "semantics of '%s' change in C90; use explicit cast", /* 118 */ - "conversion of '%s' to '%s' is out of range", /* 119 */ - "bitwise '%s' on signed value nonportable", /* 120 */ - "negative shift", /* 121 */ - "shift amount %llu is greater than bit-size %llu of '%s'", /* 122 */ - "illegal combination of %s '%s' and %s '%s', op '%s'", /* 123 */ - "illegal combination of '%s' and '%s', op '%s'", /* 124 */ - "pointers to functions can only be compared for equality", /* 125 */ - "incompatible types '%s' and '%s' in conditional", /* 126 */ - "'&' before array or function: ignored", /* 127 */ - "operands of '%s' have incompatible pointer types to '%s' and '%s'", /* 128 */ - "expression has null effect", /* 129 */ - "enum type mismatch: '%s' '%s' '%s'", /* 130 */ - "conversion to '%s' may sign-extend incorrectly", /* 131 */ - "conversion from '%s' to '%s' may lose accuracy", /* 132 */ - "conversion of pointer to '%s' loses bits", /* 133 */ - "conversion of pointer to '%s' may lose bits", /* 134 */ - "converting '%s' to '%s' increases alignment from %u to %u", /* 135 */ - "cannot do pointer arithmetic on operand of unknown size", /* 136 */ - "", /* unused */ /* 137 */ - "unknown operand size, op '%s'", /* 138 */ - "division by 0", /* 139 */ - "modulus by 0", /* 140 */ - "operator '%s' produces integer overflow", /* 141 */ - "operator '%s' produces floating point overflow", /* 142 */ - "cannot take size/alignment of incomplete type", /* 143 */ - "cannot take size/alignment of function type '%s'", /* 144 */ - "cannot take size/alignment of bit-field", /* 145 */ - "cannot take size/alignment of void", /* 146 */ - "invalid cast from '%s' to '%s'", /* 147 */ - "improper cast of void expression", /* 148 */ - "cannot call '%s', must be a function", /* 149 */ - "argument mismatch: %d %s passed, %d expected", /* 150 */ - "void expressions may not be arguments, arg #%d", /* 151 */ - "argument cannot have unknown size, arg #%d", /* 152 */ - "converting '%s' to incompatible '%s' for argument %d", /* 153 */ - "illegal combination of %s '%s' and %s '%s', arg #%d", /* 154 */ - "passing '%s' to incompatible '%s', arg #%d", /* 155 */ - "function expects '%s', passing '%s' for arg #%d", /* 156 */ - "C90 treats constant as unsigned", /* 157 */ - "'%s' may be used before set", /* 158 */ - "assignment in conditional context", /* 159 */ - "operator '==' found where '=' was expected", /* 160 */ - "constant in conditional context", /* 161 */ - "operator '%s' compares '%s' with '%s'", /* 162 */ - "a cast does not yield an lvalue", /* 163 */ - "assignment of negative constant to unsigned type", /* 164 */ - "constant truncated by assignment", /* 165 */ - "precision lost in bit-field assignment", /* 166 */ - "array subscript cannot be negative: %ld", /* 167 */ - "array subscript cannot be > %d: %ld", /* 168 */ - "precedence confusion possible: parenthesize!", /* 169 */ - "first operand of '?' must have scalar type", /* 170 */ - "cannot assign to '%s' from '%s'", /* 171 */ - "too many struct/union initializers", /* 172 */ - "too many array initializers, expected %d", /* 173 */ - "too many initializers", /* 174 */ - "initialization of incomplete type '%s'", /* 175 */ - "", /* no longer used */ /* 176 */ - "non-constant initializer", /* 177 */ - "initializer does not fit", /* 178 */ - "cannot initialize struct/union with no named member", /* 179 */ - "bit-field initializer does not fit", /* 180 */ - "{}-enclosed or constant initializer of type '%s' required", /* 181 */ - "incompatible pointer types to '%s' and '%s'", /* 182 */ - "illegal combination of %s '%s' and %s '%s'", /* 183 */ - "illegal combination of '%s' and '%s'", /* 184 */ - "cannot initialize '%s' from '%s'", /* 185 */ - "bit-field initialization is illegal in traditional C", /* 186 */ - "string literal too long (%lu) for target array (%lu)", /* 187 */ - "no automatic aggregate initialization in traditional C", /* 188 */ - "", /* no longer used */ /* 189 */ - "empty array declaration for '%s'", /* 190 */ - "'%s' set but not used in function '%s'", /* 191 */ - "'%s' unused in function '%s'", /* 192 */ - "statement not reached", /* 193 */ - "label '%s' redefined", /* 194 */ - "case not in switch", /* 195 */ - "case label affected by conversion", /* 196 */ - "non-constant case expression", /* 197 */ - "non-integral case expression", /* 198 */ - "duplicate case '%ld' in switch", /* 199 */ - "duplicate case '%lu' in switch", /* 200 */ - "default outside switch", /* 201 */ - "duplicate default in switch", /* 202 */ - "case label must be of type 'int' in traditional C", /* 203 */ - "controlling expressions must have scalar type", /* 204 */ - "switch expression must have integral type", /* 205 */ - "enumeration value(s) not handled in switch", /* 206 */ - "loop not entered at top", /* 207 */ - "break outside loop or switch", /* 208 */ - "continue outside loop", /* 209 */ - "enum type mismatch between '%s' and '%s' in initialization", /* 210 */ - "function has return type '%s' but returns '%s'", /* 211 */ - "cannot return incomplete type", /* 212 */ - "void function '%s' cannot return value", /* 213 */ - "function '%s' expects to return value", /* 214 */ - "function '%s' implicitly declared to return int", /* 215 */ - "function '%s' has 'return expr' and 'return'", /* 216 */ - "function '%s' falls off bottom without returning value", /* 217 */ - "C90 treats constant as unsigned, op '%s'", /* 218 */ - "concatenated strings are illegal in traditional C", /* 219 */ - "fallthrough on case statement", /* 220 */ - "initialization of unsigned with negative constant", /* 221 */ - "conversion of negative constant to unsigned type", /* 222 */ - "end-of-loop code not reached", /* 223 */ - "cannot recover from previous errors", /* 224 */ - "static function '%s' called but not defined", /* 225 */ - "static variable '%s' unused", /* 226 */ - "const object '%s' should have initializer", /* 227 */ - "function cannot return const or volatile object", /* 228 */ - "converting '%s' to '%s' is questionable", /* 229 */ - "nonportable character comparison '%s'", /* 230 */ - "parameter '%s' unused in function '%s'", /* 231 */ - "label '%s' unused in function '%s'", /* 232 */ - "struct '%s' never defined", /* 233 */ - "union '%s' never defined", /* 234 */ - "enum '%s' never defined", /* 235 */ - "static function '%s' unused", /* 236 */ - "redeclaration of formal parameter '%s'", /* 237 */ - "initialization of union is illegal in traditional C", /* 238 */ - "constant operand to '!'", /* 239 */ - "", /* unused */ /* 240 */ - "dubious operation '%s' on enum", /* 241 */ - "combination of '%s' and '%s', op '%s'", /* 242 */ - "operator '%s' assumes that '%s' is ordered", /* 243 */ - "illegal structure pointer combination", /* 244 */ - "incompatible structure pointers: '%s' '%s' '%s'", /* 245 */ - "dubious conversion of enum to '%s'", /* 246 */ - "pointer cast from '%s' to '%s' may be troublesome", /* 247 */ - "floating-point constant out of range", /* 248 */ - "syntax error '%s'", /* 249 */ - "unknown character \\%o", /* 250 */ - "malformed integer constant", /* 251 */ - "integer constant out of range", /* 252 */ - "unterminated character constant", /* 253 */ - "newline in string or char constant", /* 254 */ - "undefined or invalid '#' directive", /* 255 */ - "unterminated comment", /* 256 */ - "extra characters in lint comment", /* 257 */ - "unterminated string constant", /* 258 */ - "argument %d is converted from '%s' to '%s' due to prototype", /* 259 */ - "previous declaration of '%s'", /* 260 */ - "previous definition of '%s'", /* 261 */ - "\\\" inside character constants undefined in traditional C", /* 262 */ - "\\? undefined in traditional C", /* 263 */ - "\\v undefined in traditional C", /* 264 */ - "%s does not support 'long long'", /* 265 */ - "'long double' is illegal in traditional C", /* 266 */ - "shift amount %u equals bit-size of '%s'", /* 267 */ - "variable '%s' declared inline", /* 268 */ - "parameter '%s' declared inline", /* 269 */ - "function prototypes are illegal in traditional C", /* 270 */ - "switch expression must be of type 'int' in traditional C", /* 271 */ - "empty translation unit", /* 272 */ - "bit-field type '%s' invalid in C90 or later", /* 273 */ - "C90 or later forbid comparison of %s with %s", /* 274 */ - "cast discards 'const' from type '%s'", /* 275 */ - "'__%s__' is illegal for type '%s'", /* 276 */ - "initialization of '%s' with '%s'", /* 277 */ - "combination of '%s' and '%s', arg #%d", /* 278 */ - "combination of '%s' and '%s' in return", /* 279 */ - "comment /* %s */ must be outside function", /* 280 */ - "duplicate comment /* %s */", /* 281 */ - "comment /* %s */ must precede function definition", /* 282 */ - "parameter number mismatch in comment /* %s */", /* 283 */ - "fallthrough on default statement", /* 284 */ - "prototype declaration", /* 285 */ - "function definition is not a prototype", /* 286 */ - "function declaration is not a prototype", /* 287 */ - "dubious use of /* VARARGS */ with /* %s */", /* 288 */ - "/* PRINTFLIKE */ and /* SCANFLIKE */ cannot be combined", /* 289 */ - "static function '%s' declared but not defined", /* 290 */ - "invalid multibyte character", /* 291 */ - "cannot concatenate wide and regular string literals", /* 292 */ - "parameter %d must be 'char *' for PRINTFLIKE/SCANFLIKE", /* 293 */ - "multi-character character constant", /* 294 */ - "conversion of '%s' to '%s' is out of range, arg #%d", /* 295 */ - "conversion of negative constant to unsigned type, arg #%d", /* 296 */ - "conversion to '%s' may sign-extend incorrectly, arg #%d", /* 297 */ - "conversion from '%s' to '%s' may lose accuracy, arg #%d", /* 298 */ - "prototype does not match old-style definition, arg #%d", /* 299 */ - "old-style definition", /* 300 */ - "array of incomplete type", /* 301 */ - "'%s' returns pointer to automatic object", /* 302 */ - "conversion of %s to %s requires a cast", /* 303 */ - "conversion of %s to %s requires a cast, arg #%d", /* 304 */ - "conversion of %s to %s requires a cast, op %s", /* 305 */ - "constant truncated by conversion, op '%s'", /* 306 */ - "static variable '%s' set but not used", /* 307 */ - "invalid type for _Complex", /* 308 */ - "extra bits set to 0 in conversion of '%s' to '%s', op '%s'", /* 309 */ - "symbol renaming can't be used on function parameters", /* 310 */ - "symbol renaming can't be used on automatic variables", /* 311 */ - "%s does not support '//' comments", /* 312 */ - "struct or union member name in initializer is a C99 feature",/* 313 */ - "", /* never used */ /* 314 */ - "GCC style struct or union member name in initializer", /* 315 */ - "__FUNCTION__/__PRETTY_FUNCTION__ is a GCC extension", /* 316 */ - "__func__ is a C99 feature", /* 317 */ - "variable array dimension is a C99/GCC extension", /* 318 */ - "compound literals are a C99/GCC extension", /* 319 */ - "'({ ... })' is a GCC extension", /* 320 */ - "array initializer with designators is a C99 feature", /* 321 */ - "zero sized array requires C99 or later", /* 322 */ - "continue in 'do ... while (0)' loop", /* 323 */ - "suggest cast from '%s' to '%s' on op '%s' to avoid overflow", /* 324 */ - "variable declaration in for loop", /* 325 */ - "attribute '%s' ignored for '%s'", /* 326 */ - "declarations after statements is a C99 feature", /* 327 */ - "union cast is a GCC extension", /* 328 */ - "type '%s' is not a member of '%s'", /* 329 */ - "operand of '%s' must be bool, not '%s'", /* 330 */ - "left operand of '%s' must be bool, not '%s'", /* 331 */ - "right operand of '%s' must be bool, not '%s'", /* 332 */ - "controlling expression must be bool, not '%s'", /* 333 */ - "parameter %d expects '%s', gets passed '%s'", /* 334 */ - "operand of '%s' must not be bool", /* 335 */ - "left operand of '%s' must not be bool", /* 336 */ - "right operand of '%s' must not be bool", /* 337 */ - "option '%c' should be handled in the switch", /* 338 */ - "option '%c' should be listed in the options string", /* 339 */ - "initialization with '[a...b]' is a GCC extension", /* 340 */ - "argument to '%s' must be 'unsigned char' or EOF, not '%s'", /* 341 */ - "argument to '%s' must be cast to 'unsigned char', not to '%s'", /* 342 */ - "static array size requires C11 or later", /* 343 */ - "bit-field of type plain 'int' has implementation-defined signedness", /* 344 */ - "generic selection requires C11 or later", /* 345 */ - "call to '%s' effectively discards 'const' from argument", /* 346 */ - "redeclaration of '%s' with type '%s', expected '%s'", /* 347 */ - "maximum value %d of '%s' does not match maximum array index %d", /* 348 */ - "non type argument to alignof is a GCC extension", /* 349 */ - "'_Atomic' requires C11 or later", /* 350 */ - "missing%s header declaration for '%s'", /* 351 */ - "nested 'extern' declaration of '%s'", /* 352 */ - "empty initializer braces require C23 or later", /* 353 */ - "'_Static_assert' requires C11 or later", /* 354 */ - "'_Static_assert' without message requires C23 or later", /* 355 */ - "short octal escape '%.*s' followed by digit '%c'", /* 356 */ + "empty declaration", // 0 + "old-style declaration; add 'int'", // 1 + "empty declaration", // 2 + "'%s' declared in parameter declaration list", // 3 + "illegal type combination", // 4 + "modifying typedef with '%s'; only qualifiers allowed", // 5 + "use 'double' instead of 'long float'", // 6 + "only one storage class allowed", // 7 + "illegal storage class", // 8 + "only 'register' is valid as storage class in parameter", // 9 + "duplicate '%s'", // 10 + "bit-field initializer out of range", // 11 + "compiler takes size of function", // 12 + "incomplete enum type '%s'", // 13 + "", // 14 + "function returns illegal type '%s'", // 15 + "array of function is illegal", // 16 + "null dimension", // 17 + "illegal use of 'void'", // 18 + "void type for '%s'", // 19 + "negative array dimension (%d)", // 20 + "redeclaration of formal parameter '%s'", // 21 + "incomplete or misplaced function definition", // 22 + "undefined label '%s'", // 23 + "cannot initialize function '%s'", // 24 + "cannot initialize typedef '%s'", // 25 + "cannot initialize extern declaration '%s'", // 26 + "redeclaration of '%s'", // 27 + "redefinition of '%s'", // 28 + "'%s' was previously declared extern, becomes static", // 29 + "redeclaration of '%s'; C90 or later require static", // 30 + "'%s' has incomplete type '%s'", // 31 + "type of parameter '%s' defaults to 'int'", // 32 + "duplicate member name '%s'", // 33 + "nonportable bit-field type '%s'", // 34 + "illegal bit-field type '%s'", // 35 + "illegal bit-field size: %d", // 36 + "zero size bit-field", // 37 + "function illegal in structure or union", // 38 + "zero-sized array '%s' in struct requires C99 or later", // 39 + "", /* never used */ // 40 + "bit-field in union is very unusual", // 41 + "forward reference to enum type", // 42 + "redefinition of '%s' hides earlier one", // 43 + "declaration of '%s %s' introduces new type in C90 or later", // 44 + "base type is really '%s %s'", // 45 + "%s tag '%s' redeclared as %s", // 46 + "zero sized %s is a C99 feature", // 47 + "enumeration value '%s' overflows", // 48 + "anonymous struct/union members is a C11 feature", // 49 + "parameter '%s' has function type, should be pointer", // 50 + "parameter mismatch: %d declared, %d defined", // 51 + "cannot initialize parameter '%s'", // 52 + "declared parameter '%s' is missing", // 53 + "trailing ',' in enum declaration requires C99 or later", // 54 + "integral constant expression expected", // 55 + "integral constant too large", // 56 + "enumeration constant '%s' hides parameter", // 57 + "type of '%s' does not match prototype", // 58 + "formal parameter #%d lacks name", // 59 + "void must be sole parameter", // 60 + "void parameter '%s' cannot have name", // 61 + "function prototype parameters must have types", // 62 + "prototype does not match old-style definition", // 63 + "()-less function definition", // 64 + "'%s' has no named members", // 65 + "", // 66 + "cannot return incomplete type", // 67 + "typedef already qualified with '%s'", // 68 + "inappropriate qualifiers with 'void'", // 69 + "", /* unused */ // 70 + "too many characters in character constant", // 71 + "typedef declares no type name", // 72 + "empty character constant", // 73 + "no hex digits follow \\x", // 74 + "overflow in hex escape", // 75 + "character escape does not fit in character", // 76 + "bad octal digit '%c'", // 77 + "", /* unused */ // 78 + "dubious escape \\%c", // 79 + "dubious escape \\%o", // 80 + "\\a undefined in traditional C", // 81 + "\\x undefined in traditional C", // 82 + "storage class after type is obsolescent", // 83 + "C90 to C17 require formal parameter before '...'", // 84 + "dubious tag declaration '%s %s'", // 85 + "automatic '%s' hides external declaration", // 86 + "static '%s' hides external declaration", // 87 + "typedef '%s' hides external declaration", // 88 + "typedef '%s' redeclared", // 89 + "inconsistent redeclaration of extern '%s'", // 90 + "declaration of '%s' hides parameter", // 91 + "inconsistent redeclaration of static '%s'", // 92 + "dubious static function '%s' at block level", // 93 + "function '%s' has illegal storage class", // 94 + "declaration of '%s' hides earlier one", // 95 + "cannot dereference non-pointer type '%s'", // 96 + "suffix 'U' is illegal in traditional C", // 97 + "suffixes 'F' and 'L' are illegal in traditional C", // 98 + "'%s' undefined", // 99 + "unary '+' is illegal in traditional C", // 100 + "type '%s' does not have member '%s'", // 101 + "illegal use of member '%s'", // 102 + "left operand of '.' must be struct or union, not '%s'", // 103 + "left operand of '->' must be pointer to struct or union, not '%s'", // 104 + "non-unique member requires struct/union %s", // 105 + "left operand of '->' must be pointer", // 106 + "operands of '%s' have incompatible types '%s' and '%s'", // 107 + "operand of '%s' has invalid type '%s'", // 108 + "void type illegal in expression", // 109 + "pointer to function is not allowed here", // 110 + "unacceptable operand of '%s'", // 111 + "cannot take address of bit-field", // 112 + "cannot take address of register '%s'", // 113 + "%soperand of '%s' must be lvalue", // 114 + "%soperand of '%s' must be modifiable lvalue", // 115 + "illegal pointer subtraction", // 116 + "bitwise '%s' on signed value possibly nonportable", // 117 + "semantics of '%s' change in C90; use explicit cast", // 118 + "conversion of '%s' to '%s' is out of range", // 119 + "bitwise '%s' on signed value nonportable", // 120 + "negative shift", // 121 + "shift amount %llu is greater than bit-size %llu of '%s'", // 122 + "illegal combination of %s '%s' and %s '%s', op '%s'", // 123 + "illegal combination of '%s' and '%s', op '%s'", // 124 + "pointers to functions can only be compared for equality", // 125 + "incompatible types '%s' and '%s' in conditional", // 126 + "'&' before array or function: ignored", // 127 + "operands of '%s' have incompatible pointer types to '%s' and '%s'", // 128 + "expression has null effect", // 129 + "enum type mismatch: '%s' '%s' '%s'", // 130 + "conversion to '%s' may sign-extend incorrectly", // 131 + "conversion from '%s' to '%s' may lose accuracy", // 132 + "conversion of pointer to '%s' loses bits", // 133 + "conversion of pointer to '%s' may lose bits", // 134 + "converting '%s' to '%s' increases alignment from %u to %u", // 135 + "cannot do pointer arithmetic on operand of unknown size", // 136 + "", /* unused */ // 137 + "unknown operand size, op '%s'", // 138 + "division by 0", // 139 + "modulus by 0", // 140 + "operator '%s' produces integer overflow", // 141 + "operator '%s' produces floating point overflow", // 142 + "cannot take size/alignment of incomplete type", // 143 + "cannot take size/alignment of function type '%s'", // 144 + "cannot take size/alignment of bit-field", // 145 + "cannot take size/alignment of void", // 146 + "invalid cast from '%s' to '%s'", // 147 + "improper cast of void expression", // 148 + "cannot call '%s', must be a function", // 149 + "argument mismatch: %d %s passed, %d expected", // 150 + "void expressions may not be arguments, arg #%d", // 151 + "argument cannot have unknown size, arg #%d", // 152 + "converting '%s' to incompatible '%s' for argument %d", // 153 + "illegal combination of %s '%s' and %s '%s', arg #%d", // 154 + "passing '%s' to incompatible '%s', arg #%d", // 155 + "function expects '%s', passing '%s' for arg #%d", // 156 + "C90 treats constant as unsigned", // 157 + "'%s' may be used before set", // 158 + "assignment in conditional context", // 159 + "operator '==' found where '=' was expected", // 160 + "constant in conditional context", // 161 + "operator '%s' compares '%s' with '%s'", // 162 + "a cast does not yield an lvalue", // 163 + "assignment of negative constant to unsigned type", // 164 + "constant truncated by assignment", // 165 + "precision lost in bit-field assignment", // 166 + "array subscript cannot be negative: %ld", // 167 + "array subscript cannot be > %d: %ld", // 168 + "precedence confusion possible: parenthesize!", // 169 + "first operand of '?' must have scalar type", // 170 + "cannot assign to '%s' from '%s'", // 171 + "too many struct/union initializers", // 172 + "too many array initializers, expected %d", // 173 + "too many initializers", // 174 + "initialization of incomplete type '%s'", // 175 + "", /* no longer used */ // 176 + "non-constant initializer", // 177 + "initializer does not fit", // 178 + "cannot initialize struct/union with no named member", // 179 + "bit-field initializer does not fit", // 180 + "{}-enclosed or constant initializer of type '%s' required", // 181 + "incompatible pointer types to '%s' and '%s'", // 182 + "illegal combination of %s '%s' and %s '%s'", // 183 + "illegal combination of '%s' and '%s'", // 184 + "cannot initialize '%s' from '%s'", // 185 + "bit-field initialization is illegal in traditional C", // 186 + "string literal too long (%lu) for target array (%lu)", // 187 + "no automatic aggregate initialization in traditional C", // 188 + "", /* no longer used */ // 189 + "empty array declaration for '%s'", // 190 + "'%s' set but not used in function '%s'", // 191 + "'%s' unused in function '%s'", // 192 + "statement not reached", // 193 + "label '%s' redefined", // 194 + "case not in switch", // 195 + "case label affected by conversion", // 196 + "non-constant case expression", // 197 + "non-integral case expression", // 198 + "duplicate case '%ld' in switch", // 199 + "duplicate case '%lu' in switch", // 200 + "default outside switch", // 201 + "duplicate default in switch", // 202 + "case label must be of type 'int' in traditional C", // 203 + "controlling expressions must have scalar type", // 204 + "switch expression must have integral type", // 205 + "enumeration value(s) not handled in switch", // 206 + "loop not entered at top", // 207 + "break outside loop or switch", // 208 + "continue outside loop", // 209 + "enum type mismatch between '%s' and '%s' in initialization", // 210 + "function has return type '%s' but returns '%s'", // 211 + "cannot return incomplete type", // 212 + "void function '%s' cannot return value", // 213 + "function '%s' expects to return value", // 214 + "function '%s' implicitly declared to return int", // 215 + "function '%s' has 'return expr' and 'return'", // 216 + "function '%s' falls off bottom without returning value", // 217 + "C90 treats constant as unsigned, op '%s'", // 218 + "concatenated strings are illegal in traditional C", // 219 + "fallthrough on case statement", // 220 + "initialization of unsigned with negative constant", // 221 + "conversion of negative constant to unsigned type", // 222 + "end-of-loop code not reached", // 223 + "cannot recover from previous errors", // 224 + "static function '%s' called but not defined", // 225 + "static variable '%s' unused", // 226 + "const object '%s' should have initializer", // 227 + "function cannot return const or volatile object", // 228 + "converting '%s' to '%s' is questionable", // 229 + "nonportable character comparison '%s'", // 230 + "parameter '%s' unused in function '%s'", // 231 + "label '%s' unused in function '%s'", // 232 + "struct '%s' never defined", // 233 + "union '%s' never defined", // 234 + "enum '%s' never defined", // 235 + "static function '%s' unused", // 236 + "redeclaration of formal parameter '%s'", // 237 + "initialization of union is illegal in traditional C", // 238 + "constant operand to '!'", // 239 + "", /* unused */ // 240 + "dubious operation '%s' on enum", // 241 + "combination of '%s' and '%s', op '%s'", // 242 + "operator '%s' assumes that '%s' is ordered", // 243 + "illegal structure pointer combination", // 244 + "incompatible structure pointers: '%s' '%s' '%s'", // 245 + "dubious conversion of enum to '%s'", // 246 + "pointer cast from '%s' to '%s' may be troublesome", // 247 + "floating-point constant out of range", // 248 + "syntax error '%s'", // 249 + "unknown character \\%o", // 250 + "malformed integer constant", // 251 + "integer constant out of range", // 252 + "unterminated character constant", // 253 + "newline in string or char constant", // 254 + "undefined or invalid '#' directive", // 255 + "unterminated comment", // 256 + "extra characters in lint comment", // 257 + "unterminated string constant", // 258 + "argument %d is converted from '%s' to '%s' due to prototype", // 259 + "previous declaration of '%s'", // 260 + "previous definition of '%s'", // 261 + "\\\" inside character constants undefined in traditional C", // 262 + "\\? undefined in traditional C", // 263 + "\\v undefined in traditional C", // 264 + "%s does not support 'long long'", // 265 + "'long double' is illegal in traditional C", // 266 + "shift amount %u equals bit-size of '%s'", // 267 + "variable '%s' declared inline", // 268 + "parameter '%s' declared inline", // 269 + "function prototypes are illegal in traditional C", // 270 + "switch expression must be of type 'int' in traditional C", // 271 + "empty translation unit", // 272 + "bit-field type '%s' invalid in C90 or later", // 273 + "C90 or later forbid comparison of %s with %s", // 274 + "cast discards 'const' from type '%s'", // 275 + "'__%s__' is illegal for type '%s'", // 276 + "initialization of '%s' with '%s'", // 277 + "combination of '%s' and '%s', arg #%d", // 278 + "combination of '%s' and '%s' in return", // 279 + "comment /* %s */ must be outside function", // 280 + "duplicate comment /* %s */", // 281 + "comment /* %s */ must precede function definition", // 282 + "parameter number mismatch in comment /* %s */", // 283 + "fallthrough on default statement", // 284 + "prototype declaration", // 285 + "function definition is not a prototype", // 286 + "function declaration is not a prototype", // 287 + "dubious use of /* VARARGS */ with /* %s */", // 288 + "/* PRINTFLIKE */ and /* SCANFLIKE */ cannot be combined", // 289 + "static function '%s' declared but not defined", // 290 + "invalid multibyte character", // 291 + "cannot concatenate wide and regular string literals", // 292 + "parameter %d must be 'char *' for PRINTFLIKE/SCANFLIKE", // 293 + "multi-character character constant", // 294 + "conversion of '%s' to '%s' is out of range, arg #%d", // 295 + "conversion of negative constant to unsigned type, arg #%d", // 296 + "conversion to '%s' may sign-extend incorrectly, arg #%d", // 297 + "conversion from '%s' to '%s' may lose accuracy, arg #%d", // 298 + "prototype does not match old-style definition, arg #%d", // 299 + "old-style definition", // 300 + "array of incomplete type", // 301 + "'%s' returns pointer to automatic object", // 302 + "conversion of %s to %s requires a cast", // 303 + "conversion of %s to %s requires a cast, arg #%d", // 304 + "conversion of %s to %s requires a cast, op %s", // 305 + "constant truncated by conversion, op '%s'", // 306 + "static variable '%s' set but not used", // 307 + "invalid type for _Complex", // 308 + "extra bits set to 0 in conversion of '%s' to '%s', op '%s'", // 309 + "symbol renaming can't be used on function parameters", // 310 + "symbol renaming can't be used on automatic variables", // 311 + "%s does not support '//' comments", // 312 + "struct or union member name in initializer is a C99 feature", // 313 + "", /* never used */ // 314 + "GCC style struct or union member name in initializer", // 315 + "__FUNCTION__/__PRETTY_FUNCTION__ is a GCC extension", // 316 + "__func__ is a C99 feature", // 317 + "variable array dimension is a C99/GCC extension", // 318 + "compound literals are a C99/GCC extension", // 319 + "'({ ... })' is a GCC extension", // 320 + "array initializer with designators is a C99 feature", // 321 + "zero sized array requires C99 or later", // 322 + "continue in 'do ... while (0)' loop", // 323 + "suggest cast from '%s' to '%s' on op '%s' to avoid overflow", // 324 + "variable declaration in for loop", // 325 + "attribute '%s' ignored for '%s'", // 326 + "declarations after statements is a C99 feature", // 327 + "union cast is a GCC extension", // 328 + "type '%s' is not a member of '%s'", // 329 + "operand of '%s' must be bool, not '%s'", // 330 + "left operand of '%s' must be bool, not '%s'", // 331 + "right operand of '%s' must be bool, not '%s'", // 332 + "controlling expression must be bool, not '%s'", // 333 + "parameter %d expects '%s', gets passed '%s'", // 334 + "operand of '%s' must not be bool", // 335 + "left operand of '%s' must not be bool", // 336 + "right operand of '%s' must not be bool", // 337 + "option '%c' should be handled in the switch", // 338 + "option '%c' should be listed in the options string", // 339 + "initialization with '[a...b]' is a GCC extension", // 340 + "argument to '%s' must be 'unsigned char' or EOF, not '%s'", // 341 + "argument to '%s' must be cast to 'unsigned char', not to '%s'", // 342 + "static array size requires C11 or later", // 343 + "bit-field of type plain 'int' has implementation-defined signedness", // 344 + "generic selection requires C11 or later", // 345 + "call to '%s' effectively discards 'const' from argument", // 346 + "redeclaration of '%s' with type '%s', expected '%s'", // 347 + "maximum value %d of '%s' does not match maximum array index %d", // 348 + "non type argument to alignof is a GCC extension", // 349 + "'_Atomic' requires C11 or later", // 350 + "missing%s header declaration for '%s'", // 351 + "nested 'extern' declaration of '%s'", // 352 + "empty initializer braces require C23 or later", // 353 + "'_Static_assert' requires C11 or later", // 354 + "'_Static_assert' without message requires C23 or later", // 355 + "short octal escape '%.*s' followed by digit '%c'", // 356 }; static bool is_suppressed[sizeof(msgs) / sizeof(msgs[0])]; @@ -700,24 +700,24 @@ bool static const char *queries[] = { "", /* unused, to make queries 1-based */ - "implicit conversion from floating point '%s' to integer '%s'", /* Q1 */ - "cast from floating point '%s' to integer '%s'", /* Q2 */ - "implicit conversion changes sign from '%s' to '%s'", /* Q3 */ - "usual arithmetic conversion for '%s' from '%s' to '%s'", /* Q4 */ - "pointer addition has integer on the left-hand side", /* Q5 */ - "no-op cast from '%s' to '%s'", /* Q6 */ - "redundant cast from '%s' to '%s' before assignment", /* Q7 */ - "octal number '%.*s'", /* Q8 */ - "parenthesized return value", /* Q9 */ - "chained assignment with '%s' and '%s'", /* Q10 */ - "static variable '%s' in function", /* Q11 */ - "comma operator with types '%s' and '%s'", /* Q12 */ - "redundant 'extern' in function declaration of '%s'", /* Q13 */ - "comparison '%s' of 'char' with plain integer %d", /* Q14 */ - "implicit conversion from integer 0 to pointer '%s'", /* Q15 */ - "'%s' was declared 'static', now non-'static'", /* Q16 */ - "invisible character U+%04X in %s", /* Q17 */ - "const automatic variable '%s'", /* Q18 */ + "implicit conversion from floating point '%s' to integer '%s'", // Q1 + "cast from floating point '%s' to integer '%s'", // Q2 + "implicit conversion changes sign from '%s' to '%s'", // Q3 + "usual arithmetic conversion for '%s' from '%s' to '%s'", // Q4 + "pointer addition has integer on the left-hand side", // Q5 + "no-op cast from '%s' to '%s'", // Q6 + "redundant cast from '%s' to '%s' before assignment", // Q7 + "octal number '%.*s'", // Q8 + "parenthesized return value", // Q9 + "chained assignment with '%s' and '%s'", // Q10 + "static variable '%s' in function", // Q11 + "comma operator with types '%s' and '%s'", // Q12 + "redundant 'extern' in function declaration of '%s'", // Q13 + "comparison '%s' of 'char' with plain integer %d", // Q14 + "implicit conversion from integer 0 to pointer '%s'", // Q15 + "'%s' was declared 'static', now non-'static'", // Q16 + "invisible character U+%04X in %s", // Q17 + "const automatic variable '%s'", // Q18 }; bool any_query_enabled; /* for optimizing non-query scenarios */ Index: src/usr.bin/xlint/lint1/makeman diff -u src/usr.bin/xlint/lint1/makeman:1.8 src/usr.bin/xlint/lint1/makeman:1.9 --- src/usr.bin/xlint/lint1/makeman:1.8 Tue Feb 6 21:28:15 2024 +++ src/usr.bin/xlint/lint1/makeman Tue Feb 6 22:47:21 2024 @@ -1,5 +1,5 @@ #!/bin/sh -# $NetBSD: makeman,v 1.8 2024/02/06 21:28:15 rillig Exp $ +# $NetBSD: makeman,v 1.9 2024/02/06 22:47:21 rillig Exp $ # # Copyright (c) 2000 The NetBSD Foundation, Inc. # All rights reserved. @@ -34,8 +34,8 @@ tab=' ' list_messages() { ${SED} -E -n \ - -e 's|^'"$tab"'"(.+)",.*/\* '"$2"'([0-9]+) \*/$|\2'"$tab"'\1|p' \ - -e 's|^'"$tab"'"",.*/\* '"$2"'[0-9]+ \*/$|---'"$tab"'(no longer used)|p' \ + -e 's|^'"$tab"'"(.+)",.*// '"$2"'([0-9]+)$|\2'"$tab"'\1|p' \ + -e 's|^'"$tab"'"",.*// '"$2"'[0-9]+$|---'"$tab"'(no longer used)|p' \ "$1" \ | ${SED} -E \ -e 's,%ld,%d,g' \ @@ -49,7 +49,7 @@ list_messages() { } # shellcheck disable=SC2016 -cvsid='$NetBSD: makeman,v 1.8 2024/02/06 21:28:15 rillig Exp $' +cvsid='$NetBSD: makeman,v 1.9 2024/02/06 22:47:21 rillig Exp $' date="$1" year="${date##* }" messages="$(list_messages "$2" "")"