Module Name: src Committed By: rillig Date: Tue Jun 21 21:18:30 UTC 2022
Modified Files: src/tests/usr.bin/xlint/lint1: msg_062.c msg_085.c msg_090.c msg_092.c msg_093.c msg_094.c msg_095.c msg_096.c msg_108.c msg_114.c msg_343.c src/usr.bin/xlint/lint1: decl.c err.c tree.c Log Message: lint: add quotes and details to some more messages To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.5 src/tests/usr.bin/xlint/lint1/msg_062.c \ src/tests/usr.bin/xlint/lint1/msg_085.c \ src/tests/usr.bin/xlint/lint1/msg_093.c \ src/tests/usr.bin/xlint/lint1/msg_094.c \ src/tests/usr.bin/xlint/lint1/msg_095.c cvs rdiff -u -r1.3 -r1.4 src/tests/usr.bin/xlint/lint1/msg_090.c \ src/tests/usr.bin/xlint/lint1/msg_092.c cvs rdiff -u -r1.5 -r1.6 src/tests/usr.bin/xlint/lint1/msg_096.c \ src/tests/usr.bin/xlint/lint1/msg_114.c cvs rdiff -u -r1.6 -r1.7 src/tests/usr.bin/xlint/lint1/msg_108.c cvs rdiff -u -r1.7 -r1.8 src/tests/usr.bin/xlint/lint1/msg_343.c cvs rdiff -u -r1.290 -r1.291 src/usr.bin/xlint/lint1/decl.c cvs rdiff -u -r1.174 -r1.175 src/usr.bin/xlint/lint1/err.c cvs rdiff -u -r1.454 -r1.455 src/usr.bin/xlint/lint1/tree.c 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_062.c diff -u src/tests/usr.bin/xlint/lint1/msg_062.c:1.4 src/tests/usr.bin/xlint/lint1/msg_062.c:1.5 --- src/tests/usr.bin/xlint/lint1/msg_062.c:1.4 Sun Apr 24 20:08:23 2022 +++ src/tests/usr.bin/xlint/lint1/msg_062.c Tue Jun 21 21:18:30 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: msg_062.c,v 1.4 2022/04/24 20:08:23 rillig Exp $ */ +/* $NetBSD: msg_062.c,v 1.5 2022/06/21 21:18:30 rillig Exp $ */ # 3 "msg_062.c" // Test for message: function prototype parameters must have types [62] @@ -6,6 +6,6 @@ /* expect+1: error: old style declaration; add 'int' [1] */ outer() { /* expect+2: warning: function prototype parameters must have types [62] */ - /* expect+1: warning: dubious static function at block level: inner [93] */ + /* expect+1: warning: dubious static function 'inner' at block level [93] */ static int inner(a); } Index: src/tests/usr.bin/xlint/lint1/msg_085.c diff -u src/tests/usr.bin/xlint/lint1/msg_085.c:1.4 src/tests/usr.bin/xlint/lint1/msg_085.c:1.5 --- src/tests/usr.bin/xlint/lint1/msg_085.c:1.4 Wed Jun 15 20:18:31 2022 +++ src/tests/usr.bin/xlint/lint1/msg_085.c Tue Jun 21 21:18:30 2022 @@ -1,13 +1,13 @@ -/* $NetBSD: msg_085.c,v 1.4 2022/06/15 20:18:31 rillig Exp $ */ +/* $NetBSD: msg_085.c,v 1.5 2022/06/21 21:18:30 rillig Exp $ */ # 3 "msg_085.c" -// Test for message: dubious tag declaration: %s %s [85] +// Test for message: dubious tag declaration '%s %s' [85] -/* expect+1: warning: dubious tag declaration: struct in_argument [85] */ +/* expect+1: warning: dubious tag declaration 'struct in_argument' [85] */ void declare_struct(struct in_argument *); -/* expect+1: warning: dubious tag declaration: union in_argument [85] */ +/* expect+1: warning: dubious tag declaration 'union in_argument' [85] */ void declare_union(union in_argument *); -/* expect+1: warning: dubious tag declaration: enum in_argument [85] */ +/* expect+1: warning: dubious tag declaration 'enum in_argument' [85] */ void declare_enum(enum in_argument *); /* expect+1: warning: struct 'ok' never defined [233] */ Index: src/tests/usr.bin/xlint/lint1/msg_093.c diff -u src/tests/usr.bin/xlint/lint1/msg_093.c:1.4 src/tests/usr.bin/xlint/lint1/msg_093.c:1.5 --- src/tests/usr.bin/xlint/lint1/msg_093.c:1.4 Sun Apr 3 09:34:45 2022 +++ src/tests/usr.bin/xlint/lint1/msg_093.c Tue Jun 21 21:18:30 2022 @@ -1,12 +1,12 @@ -/* $NetBSD: msg_093.c,v 1.4 2022/04/03 09:34:45 rillig Exp $ */ +/* $NetBSD: msg_093.c,v 1.5 2022/06/21 21:18:30 rillig Exp $ */ # 3 "msg_093.c" -// Test for message: dubious static function at block level: %s [93] +// Test for message: dubious static function '%s' at block level [93] void example(void) { - /* expect+1: warning: dubious static function at block level: nested [93] */ + /* expect+1: warning: dubious static function 'nested' at block level [93] */ static void nested(void); nested(); Index: src/tests/usr.bin/xlint/lint1/msg_094.c diff -u src/tests/usr.bin/xlint/lint1/msg_094.c:1.4 src/tests/usr.bin/xlint/lint1/msg_094.c:1.5 --- src/tests/usr.bin/xlint/lint1/msg_094.c:1.4 Sun Apr 3 09:34:45 2022 +++ src/tests/usr.bin/xlint/lint1/msg_094.c Tue Jun 21 21:18:30 2022 @@ -1,13 +1,13 @@ -/* $NetBSD: msg_094.c,v 1.4 2022/04/03 09:34:45 rillig Exp $ */ +/* $NetBSD: msg_094.c,v 1.5 2022/06/21 21:18:30 rillig Exp $ */ # 3 "msg_094.c" -// Test for message: function has illegal storage class: %s [94] +// Test for message: function '%s' has illegal storage class [94] /* expect+2: error: illegal storage class [8] */ register int global_example(int arg) { - /* expect+1: error: function has illegal storage class: register_example [94] */ + /* expect+1: error: function 'register_example' has illegal storage class [94] */ register int register_example(int); return arg; Index: src/tests/usr.bin/xlint/lint1/msg_095.c diff -u src/tests/usr.bin/xlint/lint1/msg_095.c:1.4 src/tests/usr.bin/xlint/lint1/msg_095.c:1.5 --- src/tests/usr.bin/xlint/lint1/msg_095.c:1.4 Sun Apr 3 09:34:45 2022 +++ src/tests/usr.bin/xlint/lint1/msg_095.c Tue Jun 21 21:18:30 2022 @@ -1,7 +1,7 @@ -/* $NetBSD: msg_095.c,v 1.4 2022/04/03 09:34:45 rillig Exp $ */ +/* $NetBSD: msg_095.c,v 1.5 2022/06/21 21:18:30 rillig Exp $ */ # 3 "msg_095.c" -// Test for message: declaration hides earlier one: %s [95] +// Test for message: declaration of '%s' hides earlier one [95] /* lint1-flags: -ghSw */ @@ -12,7 +12,7 @@ example(int identifier) { { - /* expect+1: warning: declaration hides earlier one: identifier [95] */ + /* expect+1: warning: declaration of 'identifier' hides earlier one [95] */ int identifier = 3; } Index: src/tests/usr.bin/xlint/lint1/msg_090.c diff -u src/tests/usr.bin/xlint/lint1/msg_090.c:1.3 src/tests/usr.bin/xlint/lint1/msg_090.c:1.4 --- src/tests/usr.bin/xlint/lint1/msg_090.c:1.3 Sun Apr 3 09:34:45 2022 +++ src/tests/usr.bin/xlint/lint1/msg_090.c Tue Jun 21 21:18:30 2022 @@ -1,13 +1,13 @@ -/* $NetBSD: msg_090.c,v 1.3 2022/04/03 09:34:45 rillig Exp $ */ +/* $NetBSD: msg_090.c,v 1.4 2022/06/21 21:18:30 rillig Exp $ */ # 3 "msg_090.c" -// Test for message: inconsistent redeclaration of extern: %s [90] +// Test for message: inconsistent redeclaration of extern '%s' [90] extern int random_number(void); void use(void) { - /* expect+1: warning: inconsistent redeclaration of extern: random_number [90] */ + /* expect+1: warning: inconsistent redeclaration of extern 'random_number' [90] */ extern int random_number(int); } Index: src/tests/usr.bin/xlint/lint1/msg_092.c diff -u src/tests/usr.bin/xlint/lint1/msg_092.c:1.3 src/tests/usr.bin/xlint/lint1/msg_092.c:1.4 --- src/tests/usr.bin/xlint/lint1/msg_092.c:1.3 Sun Apr 3 09:34:45 2022 +++ src/tests/usr.bin/xlint/lint1/msg_092.c Tue Jun 21 21:18:30 2022 @@ -1,7 +1,7 @@ -/* $NetBSD: msg_092.c,v 1.3 2022/04/03 09:34:45 rillig Exp $ */ +/* $NetBSD: msg_092.c,v 1.4 2022/06/21 21:18:30 rillig Exp $ */ # 3 "msg_092.c" -// Test for message: inconsistent redeclaration of static: %s [92] +// Test for message: inconsistent redeclaration of static '%s' [92] static int random(void) @@ -14,7 +14,7 @@ use_random(void) { random(); - /* expect+2: warning: dubious static function at block level: random [93] */ - /* expect+1: warning: inconsistent redeclaration of static: random [92] */ + /* expect+2: warning: dubious static function 'random' at block level [93] */ + /* expect+1: warning: inconsistent redeclaration of static 'random' [92] */ static double random(void); } Index: src/tests/usr.bin/xlint/lint1/msg_096.c diff -u src/tests/usr.bin/xlint/lint1/msg_096.c:1.5 src/tests/usr.bin/xlint/lint1/msg_096.c:1.6 --- src/tests/usr.bin/xlint/lint1/msg_096.c:1.5 Sun Apr 3 09:34:45 2022 +++ src/tests/usr.bin/xlint/lint1/msg_096.c Tue Jun 21 21:18:30 2022 @@ -1,7 +1,7 @@ -/* $NetBSD: msg_096.c,v 1.5 2022/04/03 09:34:45 rillig Exp $ */ +/* $NetBSD: msg_096.c,v 1.6 2022/06/21 21:18:30 rillig Exp $ */ # 3 "msg_096.c" -// Test for message: cannot dereference non-pointer type [96] +// Test for message: cannot dereference non-pointer type '%s' [96] int unary_plus(int i) @@ -20,6 +20,6 @@ unary_asterisk(int i) { i++; - /* expect+1: error: cannot dereference non-pointer type [96] */ + /* expect+1: error: cannot dereference non-pointer type 'int' [96] */ return *i; } Index: src/tests/usr.bin/xlint/lint1/msg_114.c diff -u src/tests/usr.bin/xlint/lint1/msg_114.c:1.5 src/tests/usr.bin/xlint/lint1/msg_114.c:1.6 --- src/tests/usr.bin/xlint/lint1/msg_114.c:1.5 Thu Jun 16 16:58:36 2022 +++ src/tests/usr.bin/xlint/lint1/msg_114.c Tue Jun 21 21:18:30 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: msg_114.c,v 1.5 2022/06/16 16:58:36 rillig Exp $ */ +/* $NetBSD: msg_114.c,v 1.6 2022/06/21 21:18:30 rillig Exp $ */ # 3 "msg_114.c" // Test for message: %soperand of '%s' must be lvalue [114] @@ -16,7 +16,7 @@ example(int a) * * See msg_108.c for more details. */ - /* expect+1: error: operand of 'x++' has invalid type (array) [108] */ + /* expect+1: error: operand of 'x++' has invalid type 'array[7] of char' [108] */ "string"++; /* expect+1: error: operand of 'x++' must be lvalue [114] */ Index: src/tests/usr.bin/xlint/lint1/msg_108.c diff -u src/tests/usr.bin/xlint/lint1/msg_108.c:1.6 src/tests/usr.bin/xlint/lint1/msg_108.c:1.7 --- src/tests/usr.bin/xlint/lint1/msg_108.c:1.6 Thu Jun 16 16:58:36 2022 +++ src/tests/usr.bin/xlint/lint1/msg_108.c Tue Jun 21 21:18:30 2022 @@ -1,7 +1,7 @@ -/* $NetBSD: msg_108.c,v 1.6 2022/06/16 16:58:36 rillig Exp $ */ +/* $NetBSD: msg_108.c,v 1.7 2022/06/21 21:18:30 rillig Exp $ */ # 3 "msg_108.c" -// Test for message: operand of '%s' has invalid type (%s) [108] +// Test for message: operand of '%s' has invalid type '%s' [108] /* * Before tree.c 1.137 from 2021-01-19, taking the complement of a struct @@ -9,8 +9,8 @@ * message 108 had two operands, the second of which was always NOTSPEC, as * could be expected for a unary operator. * - * Since an error "invalid type (none)" doesn't make sense, lint rather - * chooses to crash than to generate such an error. + * Since an error "invalid type 'none'" doesn't make sense, lint rather chose + * to crash than to generate such an error. */ void complement_of_a_struct(void) @@ -21,6 +21,6 @@ complement_of_a_struct(void) 0 }; - /* expect+1: error: operand of '~' has invalid type (struct) [108] */ + /* expect+1: error: operand of '~' has invalid type 'struct s' [108] */ s = ~s; } Index: src/tests/usr.bin/xlint/lint1/msg_343.c diff -u src/tests/usr.bin/xlint/lint1/msg_343.c:1.7 src/tests/usr.bin/xlint/lint1/msg_343.c:1.8 --- src/tests/usr.bin/xlint/lint1/msg_343.c:1.7 Fri Jun 17 18:54:53 2022 +++ src/tests/usr.bin/xlint/lint1/msg_343.c Tue Jun 21 21:18:30 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: msg_343.c,v 1.7 2022/06/17 18:54:53 rillig Exp $ */ +/* $NetBSD: msg_343.c,v 1.8 2022/06/21 21:18:30 rillig Exp $ */ # 3 "msg_343.c" /* Test for message: static array size is a C11 extension [343] */ @@ -35,7 +35,7 @@ int /* expect+1: error: syntax error '3' [249] */ returns_volatile_int_array(int a[volatile 3]) { - /* expect+2: error: cannot dereference non-pointer type [96] */ + /* expect+2: error: cannot dereference non-pointer type 'int' [96] */ /* expect+1: ... expects to return value [214] */ return a[0]; } Index: src/usr.bin/xlint/lint1/decl.c diff -u src/usr.bin/xlint/lint1/decl.c:1.290 src/usr.bin/xlint/lint1/decl.c:1.291 --- src/usr.bin/xlint/lint1/decl.c:1.290 Mon Jun 20 21:13:35 2022 +++ src/usr.bin/xlint/lint1/decl.c Tue Jun 21 21:18:30 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: decl.c,v 1.290 2022/06/20 21:13:35 rillig Exp $ */ +/* $NetBSD: decl.c,v 1.291 2022/06/21 21:18:30 rillig Exp $ */ /* * Copyright (c) 1996 Christopher G. Demetriou. All Rights Reserved. @@ -38,7 +38,7 @@ #include <sys/cdefs.h> #if defined(__RCSID) -__RCSID("$NetBSD: decl.c,v 1.290 2022/06/20 21:13:35 rillig Exp $"); +__RCSID("$NetBSD: decl.c,v 1.291 2022/06/21 21:18:30 rillig Exp $"); #endif #include <sys/param.h> @@ -1477,7 +1477,7 @@ new_style_function(sym_t *args) for (sym = dcs->d_dlsyms; sym != NULL; sym = sym->s_level_next) { sc = sym->s_scl; if (sc == STRUCT_TAG || sc == UNION_TAG || sc == ENUM_TAG) { - /* dubious tag declaration: %s %s */ + /* dubious tag declaration '%s %s' */ warning(85, storage_class_name(sc), sym->s_name); } } @@ -2722,7 +2722,7 @@ check_local_redeclaration(const sym_t *d } else if (rsym->s_block_level < block_level) { if (hflag) - /* declaration hides earlier one: %s */ + /* declaration of '%s' hides earlier one */ warning(95, dsym->s_name); } @@ -2749,11 +2749,11 @@ declare_local(sym_t *dsym, bool initflg) if (dsym->s_type->t_tspec == FUNC) { if (dsym->s_scl == STATIC) { - /* dubious static function at block level: %s */ + /* dubious static function '%s' at block level */ warning(93, dsym->s_name); dsym->s_scl = EXTERN; } else if (dsym->s_scl != EXTERN && dsym->s_scl != TYPEDEF) { - /* function has illegal storage class: %s */ + /* function '%s' has illegal storage class */ error(94, dsym->s_name); dsym->s_scl = EXTERN; } @@ -2848,11 +2848,11 @@ declare_external_in_block(sym_t *dsym) if (!eqt || dowarn) { if (esym->s_scl == EXTERN) { - /* inconsistent redeclaration of extern: %s */ + /* inconsistent redeclaration of extern '%s' */ warning(90, dsym->s_name); print_previous_declaration(-1, esym); } else { - /* inconsistent redeclaration of static: %s */ + /* inconsistent redeclaration of static '%s' */ warning(92, dsym->s_name); print_previous_declaration(-1, esym); } Index: src/usr.bin/xlint/lint1/err.c diff -u src/usr.bin/xlint/lint1/err.c:1.174 src/usr.bin/xlint/lint1/err.c:1.175 --- src/usr.bin/xlint/lint1/err.c:1.174 Mon Jun 20 21:26:44 2022 +++ src/usr.bin/xlint/lint1/err.c Tue Jun 21 21:18:30 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: err.c,v 1.174 2022/06/20 21:26:44 rillig Exp $ */ +/* $NetBSD: err.c,v 1.175 2022/06/21 21:18:30 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.174 2022/06/20 21:26:44 rillig Exp $"); +__RCSID("$NetBSD: err.c,v 1.175 2022/06/21 21:18:30 rillig Exp $"); #endif #include <stdarg.h> @@ -111,7 +111,7 @@ static const char *const msgs[] = { "integral constant expression expected", /* 55 */ "integral constant too large", /* 56 */ "enumeration constant '%s' hides parameter", /* 57 */ - "type of '%s' does not match prototype", /* 58 */ + "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 */ @@ -138,18 +138,18 @@ static const char *const msgs[] = { "\\x undefined in traditional C", /* 82 */ "storage class after type is obsolescent", /* 83 */ "ANSI C requires formal parameter before '...'", /* 84 */ - "dubious tag declaration: %s %s", /* 85 */ + "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 */ + "inconsistent redeclaration of extern '%s'", /* 90 */ "declaration of '%s' hides parameter", /* 91 */ - "inconsistent redeclaration of static: %s", /* 92 */ - "dubious static function at block level: %s", /* 93 */ - "function has illegal storage class: %s", /* 94 */ - "declaration hides earlier one: %s", /* 95 */ - "cannot dereference non-pointer type", /* 96 */ + "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 */ @@ -161,7 +161,7 @@ static const char *const msgs[] = { "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 */ + "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 */ Index: src/usr.bin/xlint/lint1/tree.c diff -u src/usr.bin/xlint/lint1/tree.c:1.454 src/usr.bin/xlint/lint1/tree.c:1.455 --- src/usr.bin/xlint/lint1/tree.c:1.454 Sun Jun 19 12:14:33 2022 +++ src/usr.bin/xlint/lint1/tree.c Tue Jun 21 21:18:30 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: tree.c,v 1.454 2022/06/19 12:14:33 rillig Exp $ */ +/* $NetBSD: tree.c,v 1.455 2022/06/21 21:18:30 rillig Exp $ */ /* * Copyright (c) 1994, 1995 Jochen Pohl @@ -37,7 +37,7 @@ #include <sys/cdefs.h> #if defined(__RCSID) -__RCSID("$NetBSD: tree.c,v 1.454 2022/06/19 12:14:33 rillig Exp $"); +__RCSID("$NetBSD: tree.c,v 1.455 2022/06/21 21:18:30 rillig Exp $"); #endif #include <float.h> @@ -1077,12 +1077,12 @@ typeok_address(const mod_t *mp, } static bool -typeok_indir(tspec_t t) +typeok_indir(const type_t *tp, tspec_t t) { /* until now there were no type checks for this operator */ if (t != PTR) { - /* cannot dereference non-pointer type */ - error(96); + /* cannot dereference non-pointer type '%s' */ + error(96, type_name(tp)); return false; } return true; @@ -1414,7 +1414,7 @@ typeok_op(op_t op, const mod_t *mp, int case DECAFT: return typeok_incdec(op, ln, ltp); case INDIR: - return typeok_indir(lt); + return typeok_indir(ltp, lt); case ADDR: return typeok_address(mp, ln, ltp, lt); case PLUS: @@ -2902,8 +2902,8 @@ warn_incompatible_types(op_t op, error(107, mp->m_name, tspec_name(lt), tspec_name(rt)); } else { lint_assert(rt == NOTSPEC); - /* operand of '%s' has invalid type (%s) */ - error(108, mp->m_name, tspec_name(lt)); + /* operand of '%s' has invalid type '%s' */ + error(108, mp->m_name, type_name(ltp)); } }