Module Name:    src
Committed By:   rillig
Date:           Wed Aug  2 18:51:25 UTC 2023

Modified Files:
        src/tests/usr.bin/xlint/lint1: d_c99_bool_strict.c
            d_c99_bool_strict_syshdr.c d_c99_decls_after_stmt.c
            d_decl_old_style_arguments.c d_lint_assert.c decl_arg.c
            gcc_typeof.c msg_003.c msg_021.c msg_032.c msg_053.c msg_064.c
            msg_085.c msg_086.c msg_129.c msg_204.c msg_239.c msg_240.c
            msg_257.c msg_280.c msg_283.c msg_293.c msg_310.c msg_330.c
            msg_331.c msg_332.c msg_334.c msg_336.c msg_337.c msg_347.c
        src/tests/usr.bin/xlint/lint2: msg_000.ln read.ln
        src/usr.bin/xlint/common: tyname.c
        src/usr.bin/xlint/lint1: README.md cgram.y ckbool.c ckctype.c debug.c
            decl.c emit1.c err.c externs1.h func.c lint1.h tree.c
        src/usr.bin/xlint/xlint: lint.1

Log Message:
lint: distinguish between arguments and parameters


To generate a diff of this commit:
cvs rdiff -u -r1.43 -r1.44 src/tests/usr.bin/xlint/lint1/d_c99_bool_strict.c
cvs rdiff -u -r1.20 -r1.21 \
    src/tests/usr.bin/xlint/lint1/d_c99_bool_strict_syshdr.c
cvs rdiff -u -r1.6 -r1.7 \
    src/tests/usr.bin/xlint/lint1/d_c99_decls_after_stmt.c \
    src/tests/usr.bin/xlint/lint1/gcc_typeof.c \
    src/tests/usr.bin/xlint/lint1/msg_003.c \
    src/tests/usr.bin/xlint/lint1/msg_086.c \
    src/tests/usr.bin/xlint/lint1/msg_331.c \
    src/tests/usr.bin/xlint/lint1/msg_332.c \
    src/tests/usr.bin/xlint/lint1/msg_336.c \
    src/tests/usr.bin/xlint/lint1/msg_337.c
cvs rdiff -u -r1.8 -r1.9 \
    src/tests/usr.bin/xlint/lint1/d_decl_old_style_arguments.c \
    src/tests/usr.bin/xlint/lint1/msg_280.c
cvs rdiff -u -r1.9 -r1.10 src/tests/usr.bin/xlint/lint1/d_lint_assert.c \
    src/tests/usr.bin/xlint/lint1/msg_204.c
cvs rdiff -u -r1.11 -r1.12 src/tests/usr.bin/xlint/lint1/decl_arg.c
cvs rdiff -u -r1.5 -r1.6 src/tests/usr.bin/xlint/lint1/msg_021.c \
    src/tests/usr.bin/xlint/lint1/msg_293.c \
    src/tests/usr.bin/xlint/lint1/msg_310.c \
    src/tests/usr.bin/xlint/lint1/msg_347.c
cvs rdiff -u -r1.7 -r1.8 src/tests/usr.bin/xlint/lint1/msg_032.c \
    src/tests/usr.bin/xlint/lint1/msg_053.c \
    src/tests/usr.bin/xlint/lint1/msg_085.c \
    src/tests/usr.bin/xlint/lint1/msg_129.c \
    src/tests/usr.bin/xlint/lint1/msg_239.c \
    src/tests/usr.bin/xlint/lint1/msg_240.c \
    src/tests/usr.bin/xlint/lint1/msg_257.c \
    src/tests/usr.bin/xlint/lint1/msg_283.c \
    src/tests/usr.bin/xlint/lint1/msg_330.c
cvs rdiff -u -r1.3 -r1.4 src/tests/usr.bin/xlint/lint1/msg_064.c
cvs rdiff -u -r1.4 -r1.5 src/tests/usr.bin/xlint/lint1/msg_334.c
cvs rdiff -u -r1.4 -r1.5 src/tests/usr.bin/xlint/lint2/msg_000.ln
cvs rdiff -u -r1.7 -r1.8 src/tests/usr.bin/xlint/lint2/read.ln
cvs rdiff -u -r1.56 -r1.57 src/usr.bin/xlint/common/tyname.c
cvs rdiff -u -r1.12 -r1.13 src/usr.bin/xlint/lint1/README.md
cvs rdiff -u -r1.467 -r1.468 src/usr.bin/xlint/lint1/cgram.y
cvs rdiff -u -r1.25 -r1.26 src/usr.bin/xlint/lint1/ckbool.c
cvs rdiff -u -r1.5 -r1.6 src/usr.bin/xlint/lint1/ckctype.c
cvs rdiff -u -r1.59 -r1.60 src/usr.bin/xlint/lint1/debug.c
cvs rdiff -u -r1.373 -r1.374 src/usr.bin/xlint/lint1/decl.c
cvs rdiff -u -r1.72 -r1.73 src/usr.bin/xlint/lint1/emit1.c
cvs rdiff -u -r1.214 -r1.215 src/usr.bin/xlint/lint1/err.c
cvs rdiff -u -r1.204 -r1.205 src/usr.bin/xlint/lint1/externs1.h
cvs rdiff -u -r1.172 -r1.173 src/usr.bin/xlint/lint1/func.c
cvs rdiff -u -r1.198 -r1.199 src/usr.bin/xlint/lint1/lint1.h
cvs rdiff -u -r1.573 -r1.574 src/usr.bin/xlint/lint1/tree.c
cvs rdiff -u -r1.62 -r1.63 src/usr.bin/xlint/xlint/lint.1

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/d_c99_bool_strict.c
diff -u src/tests/usr.bin/xlint/lint1/d_c99_bool_strict.c:1.43 src/tests/usr.bin/xlint/lint1/d_c99_bool_strict.c:1.44
--- src/tests/usr.bin/xlint/lint1/d_c99_bool_strict.c:1.43	Sun Jul  9 11:18:55 2023
+++ src/tests/usr.bin/xlint/lint1/d_c99_bool_strict.c	Wed Aug  2 18:51:25 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: d_c99_bool_strict.c,v 1.43 2023/07/09 11:18:55 rillig Exp $	*/
+/*	$NetBSD: d_c99_bool_strict.c,v 1.44 2023/08/02 18:51:25 rillig Exp $	*/
 # 3 "d_c99_bool_strict.c"
 
 /*
@@ -124,11 +124,11 @@ strict_bool_constant(void)
 {
 	accept_bool(__lint_false);
 	accept_bool(__lint_true);
-	/* expect+1: error: argument 1 expects '_Bool', gets passed 'int' [334] */
+	/* expect+1: error: parameter 1 expects '_Bool', gets passed 'int' [334] */
 	accept_bool(0);
-	/* expect+1: error: argument 1 expects '_Bool', gets passed 'int' [334] */
+	/* expect+1: error: parameter 1 expects '_Bool', gets passed 'int' [334] */
 	accept_bool(1);
-	/* expect+1: error: argument 1 expects '_Bool', gets passed 'int' [334] */
+	/* expect+1: error: parameter 1 expects '_Bool', gets passed 'int' [334] */
 	accept_bool(2);
 }
 
@@ -334,17 +334,17 @@ strict_bool_conversion_function_argument
 	take_arguments(b, i, p);
 
 	/* Implicitly converting bool to other scalar types. */
-	/* expect+2: error: argument 2 expects 'int', gets passed '_Bool' [334] */
-	/* expect+1: error: argument 3 expects 'pointer', gets passed '_Bool' [334] */
+	/* expect+2: error: parameter 2 expects 'int', gets passed '_Bool' [334] */
+	/* expect+1: error: parameter 3 expects 'pointer', gets passed '_Bool' [334] */
 	take_arguments(b, b, b);
 
 	/* Implicitly converting int to bool (arg #1). */
-	/* expect+2: error: argument 1 expects '_Bool', gets passed 'int' [334] */
+	/* expect+2: error: parameter 1 expects '_Bool', gets passed 'int' [334] */
 	/* expect+1: warning: illegal combination of pointer 'pointer to const char' and integer 'int', arg #3 [154] */
 	take_arguments(i, i, i);
 
 	/* Implicitly converting pointer to bool (arg #1). */
-	/* expect+2: error: argument 1 expects '_Bool', gets passed 'pointer' [334] */
+	/* expect+2: error: parameter 1 expects '_Bool', gets passed 'pointer' [334] */
 	/* expect+1: warning: illegal combination of integer 'int' and pointer 'pointer to const char', arg #2 [154] */
 	take_arguments(p, p, p);
 
@@ -359,11 +359,11 @@ strict_bool_conversion_function_argument
 	take_arguments(__lint_true, i, p);
 
 	/* Trying to pass integer constants. */
-	/* expect+1: error: argument 1 expects '_Bool', gets passed 'int' [334] */
+	/* expect+1: error: parameter 1 expects '_Bool', gets passed 'int' [334] */
 	take_arguments(0, i, p);
-	/* expect+1: error: argument 1 expects '_Bool', gets passed 'int' [334] */
+	/* expect+1: error: parameter 1 expects '_Bool', gets passed 'int' [334] */
 	take_arguments(1, i, p);
-	/* expect+1: error: argument 1 expects '_Bool', gets passed 'int' [334] */
+	/* expect+1: error: parameter 1 expects '_Bool', gets passed 'int' [334] */
 	take_arguments(2, i, p);
 }
 
@@ -484,10 +484,10 @@ strict_bool_operand_unary_not(void)
 	b = !b;
 	b = !!!b;
 	/* expect+2: warning: constant in conditional context [161] */
-	/* expect+1: warning: constant argument to '!' [239] */
+	/* expect+1: warning: constant operand to '!' [239] */
 	b = !__lint_false;
 	/* expect+2: warning: constant in conditional context [161] */
-	/* expect+1: warning: constant argument to '!' [239] */
+	/* expect+1: warning: constant operand to '!' [239] */
 	b = !__lint_true;
 
 	int i = 0;

Index: src/tests/usr.bin/xlint/lint1/d_c99_bool_strict_syshdr.c
diff -u src/tests/usr.bin/xlint/lint1/d_c99_bool_strict_syshdr.c:1.20 src/tests/usr.bin/xlint/lint1/d_c99_bool_strict_syshdr.c:1.21
--- src/tests/usr.bin/xlint/lint1/d_c99_bool_strict_syshdr.c:1.20	Sun Jul  9 10:42:07 2023
+++ src/tests/usr.bin/xlint/lint1/d_c99_bool_strict_syshdr.c	Wed Aug  2 18:51:25 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: d_c99_bool_strict_syshdr.c,v 1.20 2023/07/09 10:42:07 rillig Exp $	*/
+/*	$NetBSD: d_c99_bool_strict_syshdr.c,v 1.21 2023/08/02 18:51:25 rillig Exp $	*/
 # 3 "d_c99_bool_strict_syshdr.c"
 
 /*
@@ -221,7 +221,7 @@ void
 pass_bool_to_function(void)
 {
 
-	/* expect+5: error: argument 1 expects '_Bool', gets passed 'int' [334] */
+	/* expect+5: error: parameter 1 expects '_Bool', gets passed 'int' [334] */
 	take_bool(
 # 227 "d_c99_bool_strict_syshdr.c" 3 4
 	    (/*CONSTCOND*/1)
@@ -234,7 +234,7 @@ pass_bool_to_function(void)
 # 235 "d_c99_bool_strict_syshdr.c"
 	);
 
-	/* expect+5: error: argument 1 expects '_Bool', gets passed 'int' [334] */
+	/* expect+5: error: parameter 1 expects '_Bool', gets passed 'int' [334] */
 	take_bool(
 # 240 "d_c99_bool_strict_syshdr.c" 3 4
 	    (/*CONSTCOND*/0)

Index: src/tests/usr.bin/xlint/lint1/d_c99_decls_after_stmt.c
diff -u src/tests/usr.bin/xlint/lint1/d_c99_decls_after_stmt.c:1.6 src/tests/usr.bin/xlint/lint1/d_c99_decls_after_stmt.c:1.7
--- src/tests/usr.bin/xlint/lint1/d_c99_decls_after_stmt.c:1.6	Fri Jul  7 19:45:22 2023
+++ src/tests/usr.bin/xlint/lint1/d_c99_decls_after_stmt.c	Wed Aug  2 18:51:25 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: d_c99_decls_after_stmt.c,v 1.6 2023/07/07 19:45:22 rillig Exp $	*/
+/*	$NetBSD: d_c99_decls_after_stmt.c,v 1.7 2023/08/02 18:51:25 rillig Exp $	*/
 # 3 "d_c99_decls_after_stmt.c"
 
 /*
@@ -35,7 +35,7 @@ second_decl_stmt_uses_a_typedef(void)
 }
 
 void
-function_with_argument(int i)
+function_with_parameter(int i)
 {
 	i += 1;
 
Index: src/tests/usr.bin/xlint/lint1/gcc_typeof.c
diff -u src/tests/usr.bin/xlint/lint1/gcc_typeof.c:1.6 src/tests/usr.bin/xlint/lint1/gcc_typeof.c:1.7
--- src/tests/usr.bin/xlint/lint1/gcc_typeof.c:1.6	Tue Mar 28 14:44:34 2023
+++ src/tests/usr.bin/xlint/lint1/gcc_typeof.c	Wed Aug  2 18:51:25 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: gcc_typeof.c,v 1.6 2023/03/28 14:44:34 rillig Exp $	*/
+/*	$NetBSD: gcc_typeof.c,v 1.7 2023/08/02 18:51:25 rillig Exp $	*/
 # 3 "gcc_typeof.c"
 
 /*
@@ -46,7 +46,7 @@ const volatile __typeof__(lock) *lock_po
 
 /*
  * Before cgram.y 1.427 from 2023-01-21, lint crashed due to a null pointer
- * dereference if the __typeof__ operator had an invalid argument.  Seen in
+ * dereference if the __typeof__ operator had an invalid operand.  Seen in
  * _fc_atomic_ptr_cmpexch from fontconfig, which uses <stdatomic.h> provided
  * by GCC, which in turn uses __auto_type and __typeof__, and lint doesn't
  * know about __auto_type.
Index: src/tests/usr.bin/xlint/lint1/msg_003.c
diff -u src/tests/usr.bin/xlint/lint1/msg_003.c:1.6 src/tests/usr.bin/xlint/lint1/msg_003.c:1.7
--- src/tests/usr.bin/xlint/lint1/msg_003.c:1.6	Fri Jul  7 19:45:22 2023
+++ src/tests/usr.bin/xlint/lint1/msg_003.c	Wed Aug  2 18:51:25 2023
@@ -1,18 +1,18 @@
-/*	$NetBSD: msg_003.c,v 1.6 2023/07/07 19:45:22 rillig Exp $	*/
+/*	$NetBSD: msg_003.c,v 1.7 2023/08/02 18:51:25 rillig Exp $	*/
 # 3 "msg_003.c"
 
-// Test for message: '%s' declared in argument declaration list [3]
+// Test for message: '%s' declared in parameter declaration list [3]
 
 /* lint1-extra-flags: -X 351 */
 
 /*ARGSUSED*/
 void
 example(declare_struct, declare_union, declare_enum)
-    /* expect+1: warning: 'incomplete struct struct_in_argument' declared in argument declaration list [3] */
-    struct struct_in_argument *declare_struct;
-    /* expect+1: warning: 'incomplete union union_in_argument' declared in argument declaration list [3] */
-    union union_in_argument *declare_union;
-    /* expect+1: warning: 'enum enum_in_argument' declared in argument declaration list [3] */
-    enum enum_in_argument *declare_enum;
+    /* expect+1: warning: 'incomplete struct struct_in_parameter' declared in parameter declaration list [3] */
+    struct struct_in_parameter *declare_struct;
+    /* expect+1: warning: 'incomplete union union_in_parameter' declared in parameter declaration list [3] */
+    union union_in_parameter *declare_union;
+    /* expect+1: warning: 'enum enum_in_parameter' declared in parameter declaration list [3] */
+    enum enum_in_parameter *declare_enum;
 {
 }
Index: src/tests/usr.bin/xlint/lint1/msg_086.c
diff -u src/tests/usr.bin/xlint/lint1/msg_086.c:1.6 src/tests/usr.bin/xlint/lint1/msg_086.c:1.7
--- src/tests/usr.bin/xlint/lint1/msg_086.c:1.6	Tue Mar 28 14:44:34 2023
+++ src/tests/usr.bin/xlint/lint1/msg_086.c	Wed Aug  2 18:51:25 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: msg_086.c,v 1.6 2023/03/28 14:44:34 rillig Exp $	*/
+/*	$NetBSD: msg_086.c,v 1.7 2023/08/02 18:51:25 rillig Exp $	*/
 # 3 "msg_086.c"
 
 // Test for message: automatic '%s' hides external declaration [86]
@@ -15,7 +15,7 @@ local_auto(void)
 	return identifier;
 }
 
-/* XXX: the function argument does not trigger the warning. */
+/* XXX: the function parameter does not trigger the warning. */
 int
 arg_auto(int identifier)
 {
Index: src/tests/usr.bin/xlint/lint1/msg_331.c
diff -u src/tests/usr.bin/xlint/lint1/msg_331.c:1.6 src/tests/usr.bin/xlint/lint1/msg_331.c:1.7
--- src/tests/usr.bin/xlint/lint1/msg_331.c:1.6	Sun Jul  9 10:42:07 2023
+++ src/tests/usr.bin/xlint/lint1/msg_331.c	Wed Aug  2 18:51:25 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: msg_331.c,v 1.6 2023/07/09 10:42:07 rillig Exp $	*/
+/*	$NetBSD: msg_331.c,v 1.7 2023/08/02 18:51:25 rillig Exp $	*/
 # 3 "msg_331.c"
 
 // Test for message: left operand of '%s' must be bool, not '%s' [331]
@@ -18,11 +18,11 @@ example(bool b, char c, int i)
 	test(b && b);
 
 	/* expect+2: error: left operand of '&&' must be bool, not 'char' [331] */
-	/* expect+1: error: argument 1 expects '_Bool', gets passed 'int' [334] */
+	/* expect+1: error: parameter 1 expects '_Bool', gets passed 'int' [334] */
 	test(c && b);
 
 	/* expect+2: error: left operand of '&&' must be bool, not 'int' [331] */
-	/* expect+1: error: argument 1 expects '_Bool', gets passed 'int' [334] */
+	/* expect+1: error: parameter 1 expects '_Bool', gets passed 'int' [334] */
 	test(i && b);
 
 	test(c != '\0');
Index: src/tests/usr.bin/xlint/lint1/msg_332.c
diff -u src/tests/usr.bin/xlint/lint1/msg_332.c:1.6 src/tests/usr.bin/xlint/lint1/msg_332.c:1.7
--- src/tests/usr.bin/xlint/lint1/msg_332.c:1.6	Sun Jul  9 10:42:07 2023
+++ src/tests/usr.bin/xlint/lint1/msg_332.c	Wed Aug  2 18:51:25 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: msg_332.c,v 1.6 2023/07/09 10:42:07 rillig Exp $	*/
+/*	$NetBSD: msg_332.c,v 1.7 2023/08/02 18:51:25 rillig Exp $	*/
 # 3 "msg_332.c"
 
 // Test for message: right operand of '%s' must be bool, not '%s' [332]
@@ -18,11 +18,11 @@ example(bool b, char c, int i)
 	test(b && b);
 
 	/* expect+2: error: right operand of '&&' must be bool, not 'char' [332] */
-	/* expect+1: error: argument 1 expects '_Bool', gets passed 'int' [334] */
+	/* expect+1: error: parameter 1 expects '_Bool', gets passed 'int' [334] */
 	test(b && c);
 
 	/* expect+2: error: right operand of '&&' must be bool, not 'int' [332] */
-	/* expect+1: error: argument 1 expects '_Bool', gets passed 'int' [334] */
+	/* expect+1: error: parameter 1 expects '_Bool', gets passed 'int' [334] */
 	test(b && i);
 
 	test(c != '\0');
Index: src/tests/usr.bin/xlint/lint1/msg_336.c
diff -u src/tests/usr.bin/xlint/lint1/msg_336.c:1.6 src/tests/usr.bin/xlint/lint1/msg_336.c:1.7
--- src/tests/usr.bin/xlint/lint1/msg_336.c:1.6	Sun Jul  9 10:42:07 2023
+++ src/tests/usr.bin/xlint/lint1/msg_336.c	Wed Aug  2 18:51:25 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: msg_336.c,v 1.6 2023/07/09 10:42:07 rillig Exp $	*/
+/*	$NetBSD: msg_336.c,v 1.7 2023/08/02 18:51:25 rillig Exp $	*/
 # 3 "msg_336.c"
 
 // Test for message: left operand of '%s' must not be bool [336]
@@ -16,7 +16,7 @@ void
 example(bool b, int i)
 {
 	/* expect+2: error: left operand of '+' must not be bool [336] */
-	/* expect+1: error: argument 1 expects '_Bool', gets passed 'int' [334] */
+	/* expect+1: error: parameter 1 expects '_Bool', gets passed 'int' [334] */
 	test(b + i);
 
 	test(b);
Index: src/tests/usr.bin/xlint/lint1/msg_337.c
diff -u src/tests/usr.bin/xlint/lint1/msg_337.c:1.6 src/tests/usr.bin/xlint/lint1/msg_337.c:1.7
--- src/tests/usr.bin/xlint/lint1/msg_337.c:1.6	Sun Jul  9 10:42:07 2023
+++ src/tests/usr.bin/xlint/lint1/msg_337.c	Wed Aug  2 18:51:25 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: msg_337.c,v 1.6 2023/07/09 10:42:07 rillig Exp $	*/
+/*	$NetBSD: msg_337.c,v 1.7 2023/08/02 18:51:25 rillig Exp $	*/
 # 3 "msg_337.c"
 
 // Test for message: right operand of '%s' must not be bool [337]
@@ -16,7 +16,7 @@ void
 example(bool b, int i)
 {
 	/* expect+2: error: right operand of '+' must not be bool [337] */
-	/* expect+1: error: argument 1 expects '_Bool', gets passed 'int' [334] */
+	/* expect+1: error: parameter 1 expects '_Bool', gets passed 'int' [334] */
 	test(i + b);
 
 	test(b);

Index: src/tests/usr.bin/xlint/lint1/d_decl_old_style_arguments.c
diff -u src/tests/usr.bin/xlint/lint1/d_decl_old_style_arguments.c:1.8 src/tests/usr.bin/xlint/lint1/d_decl_old_style_arguments.c:1.9
--- src/tests/usr.bin/xlint/lint1/d_decl_old_style_arguments.c:1.8	Sun Jul  9 11:18:55 2023
+++ src/tests/usr.bin/xlint/lint1/d_decl_old_style_arguments.c	Wed Aug  2 18:51:25 2023
@@ -18,6 +18,6 @@ void func(num, ptr, dbl, def)
     char *ptr;
     double dbl;
 {
-	/* expect-1: warning: type of argument 'def' defaults to 'int' [32] */
+	/* expect-1: warning: type of parameter 'def' defaults to 'int' [32] */
 	/* expect-2: error: parameter mismatch: 3 declared, 4 defined [51] */
 }
Index: src/tests/usr.bin/xlint/lint1/msg_280.c
diff -u src/tests/usr.bin/xlint/lint1/msg_280.c:1.8 src/tests/usr.bin/xlint/lint1/msg_280.c:1.9
--- src/tests/usr.bin/xlint/lint1/msg_280.c:1.8	Sun Jul  9 11:18:55 2023
+++ src/tests/usr.bin/xlint/lint1/msg_280.c	Wed Aug  2 18:51:25 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: msg_280.c,v 1.8 2023/07/09 11:18:55 rillig Exp $	*/
+/*	$NetBSD: msg_280.c,v 1.9 2023/08/02 18:51:25 rillig Exp $	*/
 # 3 "msg_280.c"
 
 // Test for message: comment /* %s */ must be outside function [280]
@@ -24,7 +24,7 @@ varargs_ok(const char *str, ...)
  * which case the T_LPAREN belongs to an abstract_decl_lparen).  This token
  * lookahead happens just before either of these grammar rules is reduced.
  * During that reduction, the current declaration context switches from
- * 'extern' to 'prototype argument', which makes this exact position the very
+ * DLK_EXTERN to DLK_PROTO_PARAMS, which makes this exact position the very
  * last possible.  Everything later would already be in the wrong context.
  *
  * As of cgram.y 1.360 from 2021-09-04, the implementation of these grammar

Index: src/tests/usr.bin/xlint/lint1/d_lint_assert.c
diff -u src/tests/usr.bin/xlint/lint1/d_lint_assert.c:1.9 src/tests/usr.bin/xlint/lint1/d_lint_assert.c:1.10
--- src/tests/usr.bin/xlint/lint1/d_lint_assert.c:1.9	Sat Jul 15 09:53:46 2023
+++ src/tests/usr.bin/xlint/lint1/d_lint_assert.c	Wed Aug  2 18:51:25 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: d_lint_assert.c,v 1.9 2023/07/15 09:53:46 rillig Exp $	*/
+/*	$NetBSD: d_lint_assert.c,v 1.10 2023/08/02 18:51:25 rillig Exp $	*/
 # 3 "d_lint_assert.c"
 
 /*
@@ -19,7 +19,7 @@ enum {
 
 /*
  * Before decl.c 1.196 from 2021-07-10, lint ran into an assertion failure
- * for 'sym->s_type != NULL' in declare_argument.
+ * for 'sym->s_type != NULL' in declare_argument (now declare_parameter).
  */
 /* expect+1: warning: old-style declaration; add 'int' [1] */
 c(void());
Index: src/tests/usr.bin/xlint/lint1/msg_204.c
diff -u src/tests/usr.bin/xlint/lint1/msg_204.c:1.9 src/tests/usr.bin/xlint/lint1/msg_204.c:1.10
--- src/tests/usr.bin/xlint/lint1/msg_204.c:1.9	Sun Jul  9 11:18:55 2023
+++ src/tests/usr.bin/xlint/lint1/msg_204.c	Wed Aug  2 18:51:25 2023
@@ -1,9 +1,9 @@
-/*	$NetBSD: msg_204.c,v 1.9 2023/07/09 11:18:55 rillig Exp $	*/
+/*	$NetBSD: msg_204.c,v 1.10 2023/08/02 18:51:25 rillig Exp $	*/
 # 3 "msg_204.c"
 
 // Test for message: controlling expressions must have scalar type [204]
 
-/* Suppress messages for unused arguments and for 'extern' declarations. */
+/* Suppress messages for unused parameters and for 'extern' declarations. */
 /* lint1-extra-flags: -X 231 -X 351 */
 
 extern void

Index: src/tests/usr.bin/xlint/lint1/decl_arg.c
diff -u src/tests/usr.bin/xlint/lint1/decl_arg.c:1.11 src/tests/usr.bin/xlint/lint1/decl_arg.c:1.12
--- src/tests/usr.bin/xlint/lint1/decl_arg.c:1.11	Wed Aug  2 05:44:27 2023
+++ src/tests/usr.bin/xlint/lint1/decl_arg.c	Wed Aug  2 18:51:25 2023
@@ -1,8 +1,8 @@
-/*	$NetBSD: decl_arg.c,v 1.11 2023/08/02 05:44:27 rillig Exp $	*/
+/*	$NetBSD: decl_arg.c,v 1.12 2023/08/02 18:51:25 rillig Exp $	*/
 # 3 "decl_arg.c"
 
 /*
- * Tests for declarations of function arguments.
+ * Tests for declarations of function parameters.
  *
  * See arg_declaration in cgram.y.
  */
@@ -37,21 +37,21 @@ static;
 static "error";
 /* expect+1: warning: empty declaration [2] */
 const;
-/* expect+1: error: declared argument 'undeclared' is missing [53] */
+/* expect+1: error: declared parameter 'undeclared' is missing [53] */
 const undeclared;
-/* expect+2: error: declared argument 'undeclared_initialized' is missing [53] */
+/* expect+2: error: declared parameter 'undeclared_initialized' is missing [53] */
 /* expect+1: error: cannot initialize parameter 'undeclared_initialized' [52] */
 const undeclared_initialized = 12345;
 /* expect+1: warning: empty declaration [2] */
 int;
-/* expect+1: warning: 'struct arg_struct' declared in argument declaration list [3] */
+/* expect+1: warning: 'struct arg_struct' declared in parameter declaration list [3] */
 struct arg_struct { int member; };
 /* expect+1: error: cannot initialize parameter 'an_int' [52] */
 int an_int = 12345;
 const int a_const_int;
 number a_number;
 void (a_function) (number);
-/* expect+1: warning: 'struct a_struct' declared in argument declaration list [3] */
+/* expect+1: warning: 'struct a_struct' declared in parameter declaration list [3] */
 struct a_struct { int member; } a_struct;
 {
 }
@@ -63,27 +63,27 @@ struct a_struct { int member; } a_struct
 extern int
 cover_notype_direct_decl(arg)
 int arg;
-/* expect+1: error: declared argument 'name' is missing [53] */
+/* expect+1: error: declared parameter 'name' is missing [53] */
 const name;
-/* expect+1: error: declared argument 'parenthesized_name' is missing [53] */
+/* expect+1: error: declared parameter 'parenthesized_name' is missing [53] */
 const (parenthesized_name);
-/* expect+1: error: declared argument 'array' is missing [53] */
+/* expect+1: error: declared parameter 'array' is missing [53] */
 const array[];
-/* expect+1: error: declared argument 'array_size' is missing [53] */
+/* expect+1: error: declared parameter 'array_size' is missing [53] */
 const array_size[1+1+1];
-/* expect+2: error: declared argument 'multi_array' is missing [53] */
+/* expect+2: error: declared parameter 'multi_array' is missing [53] */
 /* expect+1: error: null dimension [17] */
 const multi_array[][][][][][];
-/* expect+1: error: declared argument 'function' is missing [53] */
+/* expect+1: error: declared parameter 'function' is missing [53] */
 const function(void);
-/* expect+1: error: declared argument 'prefix_attribute' is missing [53] */
+/* expect+1: error: declared parameter 'prefix_attribute' is missing [53] */
 const __attribute__((deprecated)) prefix_attribute;
-/* expect+1: error: declared argument 'postfix_attribute' is missing [53] */
+/* expect+1: error: declared parameter 'postfix_attribute' is missing [53] */
 const postfix_attribute __attribute__((deprecated));
-/* expect+1: error: declared argument 'infix_attribute' is missing [53] */
+/* expect+1: error: declared parameter 'infix_attribute' is missing [53] */
 const __attribute__((deprecated)) infix_attribute __attribute__((deprecated));
 /* The __attribute__ before the '*' is consumed by some other grammar rule. */
-/* expect+7: error: declared argument 'pointer_prefix_attribute' is missing [53] */
+/* expect+7: error: declared parameter 'pointer_prefix_attribute' is missing [53] */
 const
     __attribute__((deprecated))
     *

Index: src/tests/usr.bin/xlint/lint1/msg_021.c
diff -u src/tests/usr.bin/xlint/lint1/msg_021.c:1.5 src/tests/usr.bin/xlint/lint1/msg_021.c:1.6
--- src/tests/usr.bin/xlint/lint1/msg_021.c:1.5	Fri Jul  7 19:45:22 2023
+++ src/tests/usr.bin/xlint/lint1/msg_021.c	Wed Aug  2 18:51:25 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: msg_021.c,v 1.5 2023/07/07 19:45:22 rillig Exp $	*/
+/*	$NetBSD: msg_021.c,v 1.6 2023/08/02 18:51:25 rillig Exp $	*/
 # 3 "msg_021.c"
 
 // Test for message: redeclaration of formal parameter '%s' [21]
@@ -13,7 +13,7 @@ void
 old_style_with_duplicate_parameter(parameter, parameter)
     int parameter;
 {
-	/* expect-1: warning: type of argument 'parameter' defaults to 'int' [32] */
+	/* expect-1: warning: type of parameter 'parameter' defaults to 'int' [32] */
 }
 
 void
Index: src/tests/usr.bin/xlint/lint1/msg_293.c
diff -u src/tests/usr.bin/xlint/lint1/msg_293.c:1.5 src/tests/usr.bin/xlint/lint1/msg_293.c:1.6
--- src/tests/usr.bin/xlint/lint1/msg_293.c:1.5	Sun Jul  9 11:18:55 2023
+++ src/tests/usr.bin/xlint/lint1/msg_293.c	Wed Aug  2 18:51:25 2023
@@ -1,11 +1,11 @@
-/*	$NetBSD: msg_293.c,v 1.5 2023/07/09 11:18:55 rillig Exp $	*/
+/*	$NetBSD: msg_293.c,v 1.6 2023/08/02 18:51:25 rillig Exp $	*/
 # 3 "msg_293.c"
 
-// Test for message: argument %d must be 'char *' for PRINTFLIKE/SCANFLIKE [293]
+// Test for message: parameter %d must be 'char *' for PRINTFLIKE/SCANFLIKE [293]
 
 /* lint1-extra-flags: -X 351 */
 
-/* expect+3: warning: argument 1 must be 'char *' for PRINTFLIKE/SCANFLIKE [293] */
+/* expect+3: warning: parameter 1 must be 'char *' for PRINTFLIKE/SCANFLIKE [293] */
 /* expect+2: warning: parameter 'msgid' unused in function 'my_printf' [231] */
 /* PRINTFLIKE 1 */
 void my_printf(int msgid, ...) {
Index: src/tests/usr.bin/xlint/lint1/msg_310.c
diff -u src/tests/usr.bin/xlint/lint1/msg_310.c:1.5 src/tests/usr.bin/xlint/lint1/msg_310.c:1.6
--- src/tests/usr.bin/xlint/lint1/msg_310.c:1.5	Sun Jul  9 11:18:55 2023
+++ src/tests/usr.bin/xlint/lint1/msg_310.c	Wed Aug  2 18:51:25 2023
@@ -1,13 +1,13 @@
-/*	$NetBSD: msg_310.c,v 1.5 2023/07/09 11:18:55 rillig Exp $	*/
+/*	$NetBSD: msg_310.c,v 1.6 2023/08/02 18:51:25 rillig Exp $	*/
 # 3 "msg_310.c"
 
-// Test for message: symbol renaming can't be used on function arguments [310]
+// Test for message: symbol renaming can't be used on function parameters [310]
 
 /* lint1-extra-flags: -X 351 */
 
 /* expect+2: warning: parameter 'callback' unused in function 'function' [231] */
 void
-function(int (*callback)(void) __symbolrename(argument))
+function(int (*callback)(void) __symbolrename(parameter))
 {
 }
 
Index: src/tests/usr.bin/xlint/lint1/msg_347.c
diff -u src/tests/usr.bin/xlint/lint1/msg_347.c:1.5 src/tests/usr.bin/xlint/lint1/msg_347.c:1.6
--- src/tests/usr.bin/xlint/lint1/msg_347.c:1.5	Tue Mar 28 14:44:35 2023
+++ src/tests/usr.bin/xlint/lint1/msg_347.c	Wed Aug  2 18:51:25 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: msg_347.c,v 1.5 2023/03/28 14:44:35 rillig Exp $	*/
+/*	$NetBSD: msg_347.c,v 1.6 2023/08/02 18:51:25 rillig Exp $	*/
 # 3 "msg_347.c"
 
 // Test for message: redeclaration of '%s' with type '%s', expected '%s' [347]
@@ -33,7 +33,7 @@ void function_parameter(void *fs, double
 struct last_arg;
 /*
  * FIXME: The following error is completely wrong.
- *  There is no argument that has 'struct last_arg', there are only pointers
+ *  There is no parameter that has 'struct last_arg', there are only pointers
  *  to it.
  */
 /* expect+2: error: '<unnamed>' has incomplete type 'incomplete struct last_arg' [31] */

Index: src/tests/usr.bin/xlint/lint1/msg_032.c
diff -u src/tests/usr.bin/xlint/lint1/msg_032.c:1.7 src/tests/usr.bin/xlint/lint1/msg_032.c:1.8
--- src/tests/usr.bin/xlint/lint1/msg_032.c:1.7	Fri Jul  7 19:45:22 2023
+++ src/tests/usr.bin/xlint/lint1/msg_032.c	Wed Aug  2 18:51:25 2023
@@ -1,15 +1,15 @@
-/*	$NetBSD: msg_032.c,v 1.7 2023/07/07 19:45:22 rillig Exp $	*/
+/*	$NetBSD: msg_032.c,v 1.8 2023/08/02 18:51:25 rillig Exp $	*/
 # 3 "msg_032.c"
 
-// Test for message: type of argument '%s' defaults to 'int' [32]
+// Test for message: type of parameter '%s' defaults to 'int' [32]
 
 /* lint1-extra-flags: -X 351 */
 
 /* expect+5: error: old-style declaration; add 'int' [1] */
 add(a, b, c)
-/* expect+3: warning: type of argument 'a' defaults to 'int' [32] */
-/* expect+2: warning: type of argument 'b' defaults to 'int' [32] */
-/* expect+1: warning: type of argument 'c' defaults to 'int' [32] */
+/* expect+3: warning: type of parameter 'a' defaults to 'int' [32] */
+/* expect+2: warning: type of parameter 'b' defaults to 'int' [32] */
+/* expect+1: warning: type of parameter 'c' defaults to 'int' [32] */
 {
 	return a + b + c;
 }
Index: src/tests/usr.bin/xlint/lint1/msg_053.c
diff -u src/tests/usr.bin/xlint/lint1/msg_053.c:1.7 src/tests/usr.bin/xlint/lint1/msg_053.c:1.8
--- src/tests/usr.bin/xlint/lint1/msg_053.c:1.7	Fri Jul  7 19:45:22 2023
+++ src/tests/usr.bin/xlint/lint1/msg_053.c	Wed Aug  2 18:51:25 2023
@@ -1,15 +1,15 @@
-/*	$NetBSD: msg_053.c,v 1.7 2023/07/07 19:45:22 rillig Exp $	*/
+/*	$NetBSD: msg_053.c,v 1.8 2023/08/02 18:51:25 rillig Exp $	*/
 # 3 "msg_053.c"
 
-// Test for message: declared argument '%s' is missing [53]
+// Test for message: declared parameter '%s' is missing [53]
 
 /* lint1-extra-flags: -X 351 */
 
 /* expect+2: error: old-style declaration; add 'int' [1] */
-oldstyle(argument)
-	int argument;
-	/* expect+1: error: declared argument 'extra_argument' is missing [53] */
-	int extra_argument;
+oldstyle(parameter)
+	int parameter;
+	/* expect+1: error: declared parameter 'extra_parameter' is missing [53] */
+	int extra_parameter;
 {
-	return argument;
+	return parameter;
 }
Index: src/tests/usr.bin/xlint/lint1/msg_085.c
diff -u src/tests/usr.bin/xlint/lint1/msg_085.c:1.7 src/tests/usr.bin/xlint/lint1/msg_085.c:1.8
--- src/tests/usr.bin/xlint/lint1/msg_085.c:1.7	Fri Jun 30 19:10:49 2023
+++ src/tests/usr.bin/xlint/lint1/msg_085.c	Wed Aug  2 18:51:25 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: msg_085.c,v 1.7 2023/06/30 19:10:49 rillig Exp $	*/
+/*	$NetBSD: msg_085.c,v 1.8 2023/08/02 18:51:25 rillig Exp $	*/
 # 3 "msg_085.c"
 
 // Test for message: dubious tag declaration '%s %s' [85]
@@ -10,12 +10,12 @@
 
 /* lint1-extra-flags: -X 351 */
 
-/* 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] */
-void declare_union(union in_argument *);
-/* expect+1: warning: dubious tag declaration 'enum in_argument' [85] */
-void declare_enum(enum in_argument *);
+/* expect+1: warning: dubious tag declaration 'struct in_parameter' [85] */
+void declare_struct(struct in_parameter *);
+/* expect+1: warning: dubious tag declaration 'union in_parameter' [85] */
+void declare_union(union in_parameter *);
+/* expect+1: warning: dubious tag declaration 'enum in_parameter' [85] */
+void declare_enum(enum in_parameter *);
 
 /* expect+1: warning: struct 'ok' never defined [233] */
 struct ok;
Index: src/tests/usr.bin/xlint/lint1/msg_129.c
diff -u src/tests/usr.bin/xlint/lint1/msg_129.c:1.7 src/tests/usr.bin/xlint/lint1/msg_129.c:1.8
--- src/tests/usr.bin/xlint/lint1/msg_129.c:1.7	Tue Mar 28 14:44:34 2023
+++ src/tests/usr.bin/xlint/lint1/msg_129.c	Wed Aug  2 18:51:25 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: msg_129.c,v 1.7 2023/03/28 14:44:34 rillig Exp $	*/
+/*	$NetBSD: msg_129.c,v 1.8 2023/08/02 18:51:25 rillig Exp $	*/
 # 3 "msg_129.c"
 
 // Test for message: expression has null effect [129]
@@ -50,7 +50,7 @@ legitimate_use_cases(int arg)
 	int local = 3;
 
 	/*
-	 * This expression is commonly used to mark the argument as
+	 * This expression is commonly used to mark the parameter as
 	 * deliberately unused.
 	 */
 	(void)arg;
Index: src/tests/usr.bin/xlint/lint1/msg_239.c
diff -u src/tests/usr.bin/xlint/lint1/msg_239.c:1.7 src/tests/usr.bin/xlint/lint1/msg_239.c:1.8
--- src/tests/usr.bin/xlint/lint1/msg_239.c:1.7	Fri Jul  7 19:45:22 2023
+++ src/tests/usr.bin/xlint/lint1/msg_239.c	Wed Aug  2 18:51:25 2023
@@ -1,7 +1,7 @@
-/*	$NetBSD: msg_239.c,v 1.7 2023/07/07 19:45:22 rillig Exp $	*/
+/*	$NetBSD: msg_239.c,v 1.8 2023/08/02 18:51:25 rillig Exp $	*/
 # 3 "msg_239.c"
 
-// Test for message: constant argument to '!' [239]
+// Test for message: constant operand to '!' [239]
 
 /* lint1-extra-flags: -h -X 351 */
 
@@ -11,10 +11,10 @@ example(int n)
 	_Bool b;
 
 	/* expect+2: warning: constant in conditional context [161] */
-	/* expect+1: warning: constant argument to '!' [239] */
+	/* expect+1: warning: constant operand to '!' [239] */
 	b = !0;
 	/* expect+2: warning: constant in conditional context [161] */
-	/* expect+1: warning: constant argument to '!' [239] */
+	/* expect+1: warning: constant operand to '!' [239] */
 	b = !1;
 	b = !(n > 1);
 
Index: src/tests/usr.bin/xlint/lint1/msg_240.c
diff -u src/tests/usr.bin/xlint/lint1/msg_240.c:1.7 src/tests/usr.bin/xlint/lint1/msg_240.c:1.8
--- src/tests/usr.bin/xlint/lint1/msg_240.c:1.7	Sun Jul  9 11:18:55 2023
+++ src/tests/usr.bin/xlint/lint1/msg_240.c	Wed Aug  2 18:51:25 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: msg_240.c,v 1.7 2023/07/09 11:18:55 rillig Exp $	*/
+/*	$NetBSD: msg_240.c,v 1.8 2023/08/02 18:51:25 rillig Exp $	*/
 # 3 "msg_240.c"
 
 // Test for message: assignment of different structures (%s != %s) [240]
@@ -6,7 +6,7 @@
 
 /* lint1-extra-flags: -X 351 */
 
-struct s_arg {
+struct s_param {
 	int member;
 };
 
@@ -22,22 +22,22 @@ union u_arg {
 	int member;
 };
 
-/* expect+2: warning: parameter 's_arg' unused in function 'return_other_struct' [231] */
+/* expect+2: warning: parameter 's_param' unused in function 'return_other_struct' [231] */
 struct s_return
-return_other_struct(struct s_arg s_arg)
+return_other_struct(struct s_param s_param)
 {
 	/* XXX: No warning? */
-	return s_arg;
+	return s_param;
 }
 
-/* expect+2: warning: parameter 's_arg' unused in function 'assign_other_struct' [231] */
+/* expect+2: warning: parameter 's_param' unused in function 'assign_other_struct' [231] */
 void
-assign_other_struct(struct s_arg s_arg)
+assign_other_struct(struct s_param s_param)
 {
 	/* expect+1: warning: 's_local' unused in function 'assign_other_struct' [192] */
 	static struct s_local s_local;
 	/* XXX: No warning? */
-	s_local = s_arg;
+	s_local = s_param;
 }
 
 /* expect+2: warning: parameter 'u_arg' unused in function 'return_other_union' [231] */
Index: src/tests/usr.bin/xlint/lint1/msg_257.c
diff -u src/tests/usr.bin/xlint/lint1/msg_257.c:1.7 src/tests/usr.bin/xlint/lint1/msg_257.c:1.8
--- src/tests/usr.bin/xlint/lint1/msg_257.c:1.7	Sun Jul  9 11:01:27 2023
+++ src/tests/usr.bin/xlint/lint1/msg_257.c	Wed Aug  2 18:51:25 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: msg_257.c,v 1.7 2023/07/09 11:01:27 rillig Exp $	*/
+/*	$NetBSD: msg_257.c,v 1.8 2023/08/02 18:51:25 rillig Exp $	*/
 # 3 "msg_257.c"
 
 // Test for message: extra characters in lint comment [257]
@@ -16,7 +16,7 @@ void take(const void *);
 /* PRINTFLIKE 7 */
 void
 my_printf(const char *fmt)
-/* expect+1: warning: argument number mismatch in comment ** PRINTFLIKE ** [283] */
+/* expect+1: warning: parameter number mismatch in comment ** PRINTFLIKE ** [283] */
 {
 	take(fmt);
 }
Index: src/tests/usr.bin/xlint/lint1/msg_283.c
diff -u src/tests/usr.bin/xlint/lint1/msg_283.c:1.7 src/tests/usr.bin/xlint/lint1/msg_283.c:1.8
--- src/tests/usr.bin/xlint/lint1/msg_283.c:1.7	Sun Jul  9 11:01:27 2023
+++ src/tests/usr.bin/xlint/lint1/msg_283.c	Wed Aug  2 18:51:25 2023
@@ -1,7 +1,7 @@
-/*	$NetBSD: msg_283.c,v 1.7 2023/07/09 11:01:27 rillig Exp $	*/
+/*	$NetBSD: msg_283.c,v 1.8 2023/08/02 18:51:25 rillig Exp $	*/
 # 3 "msg_283.c"
 
-// Test for message: argument number mismatch in comment /* %s */ [283]
+// Test for message: parameter number mismatch in comment /* %s */ [283]
 
 /* Do not warn about unused parameters. */
 /* lint1-extra-flags: -X 231,351 */
@@ -27,6 +27,6 @@ printflike_2_comment(int a, const char *
 /* PRINTFLIKE 3 */
 void
 printflike_3_comment(int a, const char *fmt)
-/* expect+1: warning: argument number mismatch in comment ** PRINTFLIKE ** [283] */
+/* expect+1: warning: parameter number mismatch in comment ** PRINTFLIKE ** [283] */
 {
 }
Index: src/tests/usr.bin/xlint/lint1/msg_330.c
diff -u src/tests/usr.bin/xlint/lint1/msg_330.c:1.7 src/tests/usr.bin/xlint/lint1/msg_330.c:1.8
--- src/tests/usr.bin/xlint/lint1/msg_330.c:1.7	Sun Jul  9 10:42:07 2023
+++ src/tests/usr.bin/xlint/lint1/msg_330.c	Wed Aug  2 18:51:25 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: msg_330.c,v 1.7 2023/07/09 10:42:07 rillig Exp $	*/
+/*	$NetBSD: msg_330.c,v 1.8 2023/08/02 18:51:25 rillig Exp $	*/
 # 3 "msg_330.c"
 
 // Test for message: operand of '%s' must be bool, not '%s' [330]
@@ -19,10 +19,10 @@ example(bool b, char c, int i)
 	called(!b);
 
 	/* expect+2: error: operand of '!' must be bool, not 'char' [330] */
-	/* expect+1: error: argument 1 expects '_Bool', gets passed 'int' [334] */
+	/* expect+1: error: parameter 1 expects '_Bool', gets passed 'int' [334] */
 	called(!c);
 
 	/* expect+2: error: operand of '!' must be bool, not 'int' [330] */
-	/* expect+1: error: argument 1 expects '_Bool', gets passed 'int' [334] */
+	/* expect+1: error: parameter 1 expects '_Bool', gets passed 'int' [334] */
 	called(!i);
 }

Index: src/tests/usr.bin/xlint/lint1/msg_064.c
diff -u src/tests/usr.bin/xlint/lint1/msg_064.c:1.3 src/tests/usr.bin/xlint/lint1/msg_064.c:1.4
--- src/tests/usr.bin/xlint/lint1/msg_064.c:1.3	Mon Jul 12 18:00:36 2021
+++ src/tests/usr.bin/xlint/lint1/msg_064.c	Wed Aug  2 18:51:25 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: msg_064.c,v 1.3 2021/07/12 18:00:36 rillig Exp $	*/
+/*	$NetBSD: msg_064.c,v 1.4 2023/08/02 18:51:25 rillig Exp $	*/
 # 3 "msg_064.c"
 
 // Test for message: ()-less function definition [64]
@@ -8,8 +8,7 @@ typedef int (function)(void);
 /*
  * Even though typedef_function has type function, this construction is not
  * allowed.  A function definition must always look like a function
- * definition, and that includes the parentheses for the arguments or
- * parameters.
+ * definition, and that includes the parentheses for the parameters.
  */
 function typedef_function {
 	/* expect-1: error: ()-less function definition [64] */

Index: src/tests/usr.bin/xlint/lint1/msg_334.c
diff -u src/tests/usr.bin/xlint/lint1/msg_334.c:1.4 src/tests/usr.bin/xlint/lint1/msg_334.c:1.5
--- src/tests/usr.bin/xlint/lint1/msg_334.c:1.4	Sun Jul  9 10:42:07 2023
+++ src/tests/usr.bin/xlint/lint1/msg_334.c	Wed Aug  2 18:51:25 2023
@@ -1,7 +1,7 @@
-/*	$NetBSD: msg_334.c,v 1.4 2023/07/09 10:42:07 rillig Exp $	*/
+/*	$NetBSD: msg_334.c,v 1.5 2023/08/02 18:51:25 rillig Exp $	*/
 # 3 "msg_334.c"
 
-// Test for message: argument %d expects '%s', gets passed '%s' [334]
+// Test for message: parameter %d expects '%s', gets passed '%s' [334]
 //
 // See d_c99_bool_strict.c for many more examples.
 
@@ -19,10 +19,10 @@ caller(bool b, int i)
 {
 	test_bool(b);
 
-	/* expect+1: error: argument 1 expects '_Bool', gets passed 'int' [334] */
+	/* expect+1: error: parameter 1 expects '_Bool', gets passed 'int' [334] */
 	test_bool(i);
 
-	/* expect+1: error: argument 1 expects 'int', gets passed '_Bool' [334] */
+	/* expect+1: error: parameter 1 expects 'int', gets passed '_Bool' [334] */
 	test_int(b);
 
 	test_int(i);

Index: src/tests/usr.bin/xlint/lint2/msg_000.ln
diff -u src/tests/usr.bin/xlint/lint2/msg_000.ln:1.4 src/tests/usr.bin/xlint/lint2/msg_000.ln:1.5
--- src/tests/usr.bin/xlint/lint2/msg_000.ln:1.4	Mon May 30 23:27:45 2022
+++ src/tests/usr.bin/xlint/lint2/msg_000.ln	Wed Aug  2 18:51:25 2023
@@ -1,4 +1,4 @@
-# $NetBSD: msg_000.ln,v 1.4 2022/05/30 23:27:45 rillig Exp $
+# $NetBSD: msg_000.ln,v 1.5 2023/08/02 18:51:25 rillig Exp $
 #
 # Test data for message 0 of lint2:
 #	%s used( %s ), but not defined
@@ -37,6 +37,6 @@ S msg_000.c
 #	'd'	function definition
 #	'o'	old-style function definition
 #	'16...'	the name of the defined function
-#	'f0'	it's a function with 0 arguments
+#	'f0'	it's a function with 0 parameters
 #	'I'	the return type of the function is (implicitly) 'int'
 2 d 0.2 d o 16defined_not_used f0 I

Index: src/tests/usr.bin/xlint/lint2/read.ln
diff -u src/tests/usr.bin/xlint/lint2/read.ln:1.7 src/tests/usr.bin/xlint/lint2/read.ln:1.8
--- src/tests/usr.bin/xlint/lint2/read.ln:1.7	Mon Jul  3 07:03:19 2023
+++ src/tests/usr.bin/xlint/lint2/read.ln	Wed Aug  2 18:51:25 2023
@@ -1,4 +1,4 @@
-# $NetBSD: read.ln,v 1.7 2023/07/03 07:03:19 rillig Exp $
+# $NetBSD: read.ln,v 1.8 2023/08/02 18:51:25 rillig Exp $
 #
 # Cover each path of reading declarations, definitions and usages.
 
@@ -67,12 +67,12 @@ S read.c
 193 d 0.193 v0 d 15varargs_comment   F1 PcC V
 199 d 0.199 v0 d 17varargs_0_comment F1 PcC V
 205 d 0.205 v3 d 17varargs_3_comment F4 I I I PcC V
-# The PRINTFLIKE information is only emitted if its argument is > 0.
+# The PRINTFLIKE information is only emitted if its parameter is > 0.
 211 d 0.211         d 18printflike_comment    F1  PcC V
 217 d 0.217         d 20printflike_0_comment  F1  PcC V
 223 d 0.223 v3  P3  d 20printflike_3_comment  F3  I I PcC V
 229 d 0.229 v10 P10 d 21printflike_10_comment F10 I I I I I I I I I PcC V
-# The SCANFLIKE information is only emitted if its argument is > 0.
+# The SCANFLIKE information is only emitted if its parameter is > 0.
 237 d 0.237         d 17scanflike_comment     F1  PcC V
 243 d 0.243         d 19scanflike_0_comment   F1  PcC V
 249 d 0.249 v3  S3  d 19scanflike_3_comment   F3  I I PcC V

Index: src/usr.bin/xlint/common/tyname.c
diff -u src/usr.bin/xlint/common/tyname.c:1.56 src/usr.bin/xlint/common/tyname.c:1.57
--- src/usr.bin/xlint/common/tyname.c:1.56	Thu Jun 29 12:52:06 2023
+++ src/usr.bin/xlint/common/tyname.c	Wed Aug  2 18:51:25 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: tyname.c,v 1.56 2023/06/29 12:52:06 rillig Exp $	*/
+/*	$NetBSD: tyname.c,v 1.57 2023/08/02 18:51:25 rillig Exp $	*/
 
 /*-
  * Copyright (c) 2005 The NetBSD Foundation, Inc.
@@ -35,7 +35,7 @@
 
 #include <sys/cdefs.h>
 #if defined(__RCSID)
-__RCSID("$NetBSD: tyname.c,v 1.56 2023/06/29 12:52:06 rillig Exp $");
+__RCSID("$NetBSD: tyname.c,v 1.57 2023/08/02 18:51:25 rillig Exp $");
 #endif
 
 #include <assert.h>
@@ -155,14 +155,12 @@ type_name_of_function(buffer *buf, const
 	buf_add(buf, "(");
 	if (tp->t_proto) {
 #ifdef IS_LINT1
-		sym_t *arg;
-
-		arg = tp->t_args;
-		if (arg == NULL)
+		const sym_t *param = tp->t_params;
+		if (param == NULL)
 			buf_add(buf, "void");
-		for (; arg != NULL; arg = arg->s_next) {
+		for (; param != NULL; param = param->s_next) {
 			buf_add(buf, sep), sep = ", ";
-			buf_add(buf, type_name(arg->s_type));
+			buf_add(buf, type_name(param->s_type));
 		}
 #else
 		type_t **argtype;

Index: src/usr.bin/xlint/lint1/README.md
diff -u src/usr.bin/xlint/lint1/README.md:1.12 src/usr.bin/xlint/lint1/README.md:1.13
--- src/usr.bin/xlint/lint1/README.md:1.12	Wed Feb 22 23:55:05 2023
+++ src/usr.bin/xlint/lint1/README.md	Wed Aug  2 18:51:25 2023
@@ -1,4 +1,4 @@
-[//]: # ($NetBSD: README.md,v 1.12 2023/02/22 23:55:05 rillig Exp $)
+[//]: # ($NetBSD: README.md,v 1.13 2023/08/02 18:51:25 rillig Exp $)
 
 # Introduction
 
@@ -71,7 +71,7 @@ Lint operates on the level of individual
 * It does not build an AST of the statements of a function, therefore it
   cannot reliably analyze the control flow in a single function.
 * It does not store the control flow properties of functions, therefore it
-  cannot relate argument nullability with the return value.
+  cannot relate parameter nullability with the return value.
 * It does not have information about functions, except for their prototypes,
   therefore it cannot relate them across translation units.
 * It does not store detailed information about complex data types, therefore
@@ -197,14 +197,14 @@ See `expr_free_all`.
 
 # Abbreviations in variable names
 
-| Abbr | Expanded                                    |
-|------|---------------------------------------------|
-| l    | left                                        |
-| r    | right                                       |
-| o    | old (during type conversions)               |
-| n    | new (during type conversions)               |
-| op   | operator                                    |
-| arg  | the number of the argument, for diagnostics |
+| Abbr | Expanded                                     |
+|------|----------------------------------------------|
+| l    | left                                         |
+| r    | right                                        |
+| o    | old (during type conversions)                |
+| n    | new (during type conversions)                |
+| op   | operator                                     |
+| arg  | the number of the parameter, for diagnostics |
 
 # Debugging
 

Index: src/usr.bin/xlint/lint1/cgram.y
diff -u src/usr.bin/xlint/lint1/cgram.y:1.467 src/usr.bin/xlint/lint1/cgram.y:1.468
--- src/usr.bin/xlint/lint1/cgram.y:1.467	Tue Aug  1 16:08:58 2023
+++ src/usr.bin/xlint/lint1/cgram.y	Wed Aug  2 18:51:25 2023
@@ -1,5 +1,5 @@
 %{
-/* $NetBSD: cgram.y,v 1.467 2023/08/01 16:08:58 rillig Exp $ */
+/* $NetBSD: cgram.y,v 1.468 2023/08/02 18:51:25 rillig Exp $ */
 
 /*
  * Copyright (c) 1996 Christopher G. Demetriou.  All Rights Reserved.
@@ -35,7 +35,7 @@
 
 #include <sys/cdefs.h>
 #if defined(__RCSID)
-__RCSID("$NetBSD: cgram.y,v 1.467 2023/08/01 16:08:58 rillig Exp $");
+__RCSID("$NetBSD: cgram.y,v 1.468 2023/08/02 18:51:25 rillig Exp $");
 #endif
 
 #include <limits.h>
@@ -54,7 +54,7 @@ int	block_level;
 
 /*
  * level for memory allocation. Normally the same as block_level.
- * An exception is the declaration of arguments in prototypes. Memory
+ * An exception is the declaration of parameters in prototypes. Memory
  * for these can't be freed after the declaration, but symbols must
  * be removed from the symbol table after the declaration.
  */
@@ -1357,7 +1357,7 @@ type_direct_declarator:
 
 /*
  * The two distinct rules type_param_declarator and notype_param_declarator
- * avoid a conflict in argument lists. A typename enclosed in parentheses is
+ * avoid a conflict in parameter lists. A typename enclosed in parentheses is
  * always treated as a typename, not an argument name. For example, after
  * "typedef double a;", the declaration "f(int (a));" is interpreted as
  * "f(int (double));", not "f(int a);".
@@ -1597,31 +1597,31 @@ parameter_type_list:
 parameter_declaration:
 	begin_type_declmods end_type {
 		/* ^^ There is no check for the missing type-specifier. */
-		$$ = declare_argument(abstract_name(), false);
+		$$ = declare_parameter(abstract_name(), false);
 	}
 |	begin_type_declaration_specifiers end_type {
-		$$ = declare_argument(abstract_name(), false);
+		$$ = declare_parameter(abstract_name(), false);
 	}
 |	begin_type_declmods end_type notype_param_declarator {
 		/* ^^ There is no check for the missing type-specifier. */
-		$$ = declare_argument($3, false);
+		$$ = declare_parameter($3, false);
 	}
 	/*
 	 * type_param_declarator is needed because of following conflict:
 	 * "typedef int a; f(int (a));" could be parsed as
 	 * "function with argument a of type int", or
-	 * "function with an abstract argument of type function".
+	 * "function with an unnamed (abstract) argument of type function".
 	 * This grammar realizes the second case.
 	 */
 |	begin_type_declaration_specifiers end_type type_param_declarator {
-		$$ = declare_argument($3, false);
+		$$ = declare_parameter($3, false);
 	}
 |	begin_type_declmods end_type abstract_declarator {
 		/* ^^ There is no check for the missing type-specifier. */
-		$$ = declare_argument($3, false);
+		$$ = declare_parameter($3, false);
 	}
 |	begin_type_declaration_specifiers end_type abstract_declarator {
-		$$ = declare_argument($3, false);
+		$$ = declare_parameter($3, false);
 	}
 ;
 
@@ -2086,14 +2086,14 @@ function_definition:		/* C99 6.9.1 */
 		check_extern_declaration($1);
 		begin_function($1);
 		block_level++;
-		begin_declaration_level(DLK_OLD_STYLE_ARGS);
+		begin_declaration_level(DLK_OLD_STYLE_PARAMS);
 		if (lwarn == LWARN_NONE)
 			$1->s_used = true;
 	} arg_declaration_list_opt {
 		end_declaration_level();
 		block_level--;
 		check_func_lint_directives();
-		check_func_old_style_arguments();
+		check_func_old_style_parameters();
 		begin_control_statement(CS_FUNCTION_BODY);
 	} compound_statement {
 		end_function();
@@ -2148,14 +2148,14 @@ arg_declaration:
 			/* empty declaration */
 			warning(2);
 		} else {
-			/* '%s' declared in argument declaration list */
+			/* '%s' declared in parameter declaration list */
 			warning(3, type_name(dcs->d_type));
 		}
 	}
 |	begin_type_declaration_specifiers end_type
 	    type_init_declarators T_SEMI {
 		if (dcs->d_nonempty_decl) {
-			/* '%s' declared in argument declaration list */
+			/* '%s' declared in parameter declaration list */
 			warning(3, type_name(dcs->d_type));
 		}
 	}

Index: src/usr.bin/xlint/lint1/ckbool.c
diff -u src/usr.bin/xlint/lint1/ckbool.c:1.25 src/usr.bin/xlint/lint1/ckbool.c:1.26
--- src/usr.bin/xlint/lint1/ckbool.c:1.25	Mon Jul 10 19:47:12 2023
+++ src/usr.bin/xlint/lint1/ckbool.c	Wed Aug  2 18:51:25 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: ckbool.c,v 1.25 2023/07/10 19:47:12 rillig Exp $ */
+/* $NetBSD: ckbool.c,v 1.26 2023/08/02 18:51:25 rillig Exp $ */
 
 /*-
  * Copyright (c) 2021 The NetBSD Foundation, Inc.
@@ -36,7 +36,7 @@
 #include <sys/cdefs.h>
 
 #if defined(__RCSID)
-__RCSID("$NetBSD: ckbool.c,v 1.25 2023/07/10 19:47:12 rillig Exp $");
+__RCSID("$NetBSD: ckbool.c,v 1.26 2023/08/02 18:51:25 rillig Exp $");
 #endif
 
 #include <string.h>
@@ -114,7 +114,7 @@ typeok_strict_bool_binary_compatible(op_
 		return true;
 
 	if (op == FARG) {
-		/* argument %d expects '%s', gets passed '%s' */
+		/* parameter %d expects '%s', gets passed '%s' */
 		error(334, arg, tspec_name(lt), tspec_name(rt));
 	} else if (op == RETURN) {
 		/* function has return type '%s' but returns '%s' */
@@ -204,7 +204,7 @@ typeok_scalar_strict_bool(op_t op, const
 
 /*
  * See if the node is valid as operand of an operator that compares its
- * argument with 0.
+ * operand with 0.
  */
 bool
 is_typeok_bool_compares_with_zero(const tnode_t *tn)

Index: src/usr.bin/xlint/lint1/ckctype.c
diff -u src/usr.bin/xlint/lint1/ckctype.c:1.5 src/usr.bin/xlint/lint1/ckctype.c:1.6
--- src/usr.bin/xlint/lint1/ckctype.c:1.5	Fri May 20 21:18:55 2022
+++ src/usr.bin/xlint/lint1/ckctype.c	Wed Aug  2 18:51:25 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: ckctype.c,v 1.5 2022/05/20 21:18:55 rillig Exp $ */
+/* $NetBSD: ckctype.c,v 1.6 2023/08/02 18:51:25 rillig Exp $ */
 
 /*-
  * Copyright (c) 2021 The NetBSD Foundation, Inc.
@@ -36,7 +36,7 @@
 #include <sys/cdefs.h>
 
 #if defined(__RCSID)
-__RCSID("$NetBSD: ckctype.c,v 1.5 2022/05/20 21:18:55 rillig Exp $");
+__RCSID("$NetBSD: ckctype.c,v 1.6 2023/08/02 18:51:25 rillig Exp $");
 #endif
 
 #include <string.h>
@@ -47,8 +47,8 @@ __RCSID("$NetBSD: ckctype.c,v 1.5 2022/0
  * Check that the functions from <ctype.h> are used properly.  They must not
  * be called with an argument of type 'char'.  In such a case, the argument
  * must be converted to 'unsigned char'.  The tricky thing is that even though
- * the expected argument type is 'int', a 'char' argument must not be directly
- * cast to 'int', as that would preserve negative argument values.
+ * the parameter type is declared as 'int', a 'char' argument must not be
+ * directly cast to 'int', as that would preserve negative argument values.
  *
  * See also:
  *	ctype(3)

Index: src/usr.bin/xlint/lint1/debug.c
diff -u src/usr.bin/xlint/lint1/debug.c:1.59 src/usr.bin/xlint/lint1/debug.c:1.60
--- src/usr.bin/xlint/lint1/debug.c:1.59	Tue Aug  1 16:08:58 2023
+++ src/usr.bin/xlint/lint1/debug.c	Wed Aug  2 18:51:25 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: debug.c,v 1.59 2023/08/01 16:08:58 rillig Exp $ */
+/* $NetBSD: debug.c,v 1.60 2023/08/02 18:51:25 rillig Exp $ */
 
 /*-
  * Copyright (c) 2021 The NetBSD Foundation, Inc.
@@ -35,7 +35,7 @@
 
 #include <sys/cdefs.h>
 #if defined(__RCSID)
-__RCSID("$NetBSD: debug.c,v 1.59 2023/08/01 16:08:58 rillig Exp $");
+__RCSID("$NetBSD: debug.c,v 1.60 2023/08/02 18:51:25 rillig Exp $");
 #endif
 
 #include <stdlib.h>
@@ -286,7 +286,7 @@ decl_level_kind_name(decl_level_kind kin
 		"struct",
 		"union",
 		"enum",
-		"old-style-function-arguments",
+		"old-style-function-parameters",
 		"prototype-parameters",
 		"auto",
 		"abstract",
@@ -312,8 +312,8 @@ scl_name(scl_t scl)
 		"member-of-struct",
 		"member-of-union",
 		"abstract",
-		"old-style-function-argument",
-		"prototype-argument",
+		"old-style-function-parameter",
+		"prototype-parameter",
 	};
 
 	return name[scl];
@@ -378,9 +378,9 @@ debug_sym(const char *prefix, const sym_
 	debug_word(sym->s_bitfield, "bit-field");
 	debug_word(sym->s_set, "set");
 	debug_word(sym->s_used, "used");
-	debug_word(sym->s_arg, "argument");
+	debug_word(sym->s_param, "parameter");
 	debug_word(sym->s_register, "register");
-	debug_word(sym->s_defarg, "old-style-undefined");
+	debug_word(sym->s_defparam, "old-style-undefined");
 	debug_word(sym->s_return_type_implicit_int, "return-int");
 	debug_word(sym->s_osdef, "old-style");
 	debug_word(sym->s_inline, "inline");
@@ -427,8 +427,8 @@ debug_sym(const char *prefix, const sym_
 			    sym->u.s_keyword.u.function_specifier));
 	}
 
-	debug_word(sym->s_osdef && sym->u.s_old_style_args != NULL,
-	    "old-style-args");
+	debug_word(sym->s_osdef && sym->u.s_old_style_params != NULL,
+	    "old-style-params");
 
 	if (strcmp(suffix, "\n") == 0)
 		debug_printf("\n");
@@ -477,9 +477,8 @@ debug_decl_level(const decl_level *dl)
 
 	if (dl->d_tag_type != NULL)
 		debug_printf(" tag_type='%s'", type_name(dl->d_tag_type));
-	for (const sym_t *arg = dl->d_func_args;
-	     arg != NULL; arg = arg->s_next)
-		debug_sym(" arg(", arg, ")");
+	for (const sym_t *p = dl->d_func_params; p != NULL; p = p->s_next)
+		debug_sym(" param(", p, ")");
 	if (dl->d_func_def_pos.p_file != NULL)
 		debug_printf(" func_def_pos=%s:%d:%d",
 		    dl->d_func_def_pos.p_file, dl->d_func_def_pos.p_line,

Index: src/usr.bin/xlint/lint1/decl.c
diff -u src/usr.bin/xlint/lint1/decl.c:1.373 src/usr.bin/xlint/lint1/decl.c:1.374
--- src/usr.bin/xlint/lint1/decl.c:1.373	Wed Aug  2 05:44:27 2023
+++ src/usr.bin/xlint/lint1/decl.c	Wed Aug  2 18:51:25 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: decl.c,v 1.373 2023/08/02 05:44:27 rillig Exp $ */
+/* $NetBSD: decl.c,v 1.374 2023/08/02 18:51:25 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.373 2023/08/02 05:44:27 rillig Exp $");
+__RCSID("$NetBSD: decl.c,v 1.374 2023/08/02 18:51:25 rillig Exp $");
 #endif
 
 #include <sys/param.h>
@@ -161,8 +161,8 @@ expr_unqualified_type(const type_t *tp)
 }
 
 /*
- * Returns whether the argument is void or an incomplete array, struct, union
- * or enum type.
+ * Returns whether the type is 'void' or an incomplete array, struct, union
+ * or enum.
  */
 bool
 is_incomplete(const type_t *tp)
@@ -534,12 +534,12 @@ end_declaration_level(void)
 		if ((*dcs->d_last_dlsym = dl->d_first_dlsym) != NULL)
 			dcs->d_last_dlsym = dl->d_last_dlsym;
 		break;
-	case DLK_OLD_STYLE_ARGS:
+	case DLK_OLD_STYLE_PARAMS:
 		/*
 		 * All symbols in dcs->d_first_dlsym are introduced in
-		 * old-style argument declarations (it's not clean, but
+		 * old-style parameter declarations (it's not clean, but
 		 * possible). They are appended to the list of symbols declared
-		 * in an old-style argument identifier list or a new-style
+		 * in an old-style parameter identifier list or a new-style
 		 * parameter type list.
 		 */
 		if (dl->d_first_dlsym != NULL) {
@@ -563,7 +563,7 @@ end_declaration_level(void)
 		check_usage(dl);
 		/* FALLTHROUGH */
 	case DLK_PROTO_PARAMS:
-		/* usage of arguments will be checked by end_function() */
+		/* usage of parameters will be checked by end_function() */
 		symtab_remove_level(dl->d_first_dlsym);
 		break;
 	case DLK_EXTERN:
@@ -618,7 +618,7 @@ dcs_begin_type(void)
 	dcs->d_no_type_specifier = false;
 	dcs->d_packed = false;
 	dcs->d_used = false;
-	dcs->d_func_args = NULL;
+	dcs->d_func_params = NULL;
 	dcs->d_func_def_pos = (pos_t){ NULL, 0, 0 };
 	dcs->d_func_proto_syms = NULL;
 }
@@ -632,7 +632,7 @@ dcs_adjust_storage_class(void)
 			error(8);
 			dcs->d_scl = NOSCL;
 		}
-	} else if (dcs->d_kind == DLK_OLD_STYLE_ARGS ||
+	} else if (dcs->d_kind == DLK_OLD_STYLE_PARAMS ||
 		   dcs->d_kind == DLK_PROTO_PARAMS) {
 		if (dcs->d_scl != NOSCL && dcs->d_scl != REG) {
 			/* only 'register' is valid as storage class ... */
@@ -1289,13 +1289,13 @@ add_array(sym_t *decl, bool dim, int n)
 }
 
 static type_t *
-block_derive_function(type_t *ret, bool proto, sym_t *args, bool vararg)
+block_derive_function(type_t *ret, bool proto, sym_t *params, bool vararg)
 {
 
 	type_t *tp = block_derive_type(ret, FUNC);
 	tp->t_proto = proto;
 	if (proto)
-		tp->t_args = args;
+		tp->t_params = params;
 	tp->t_vararg = vararg;
 	debug_step("%s: '%s'", __func__, type_name(tp));
 	return tp;
@@ -1325,7 +1325,7 @@ check_prototype_parameters(sym_t *args)
 }
 
 static void
-old_style_function(sym_t *decl, sym_t *args)
+old_style_function(sym_t *decl, sym_t *params)
 {
 
 	/*
@@ -1338,12 +1338,12 @@ old_style_function(sym_t *decl, sym_t *a
 		 * Assume that this becomes a function definition. If not, it
 		 * will be corrected in check_function_definition.
 		 */
-		if (args != NULL) {
+		if (params != NULL) {
 			decl->s_osdef = true;
-			decl->u.s_old_style_args = args;
+			decl->u.s_old_style_params = params;
 		}
 	} else {
-		if (args != NULL)
+		if (params != NULL)
 			/* function prototype parameters must have types */
 			warning(62);
 	}
@@ -1377,15 +1377,15 @@ add_function(sym_t *decl, struct paramet
 	 * end_declaration_level after add_function. To be able to restore
 	 * them if this is a function definition, a pointer to the list of
 	 * all symbols is stored in dcs->d_enclosing->d_func_proto_syms. Also,
-	 * a list of the arguments (concatenated by s_next) is stored in
-	 * dcs->d_enclosing->d_func_args. (dcs->d_enclosing must be used
+	 * a list of the parameters (concatenated by s_next) is stored in
+	 * dcs->d_enclosing->d_func_params. (dcs->d_enclosing must be used
 	 * because *dcs is the declaration stack element created for the list
 	 * of params and is removed after add_function.)
 	 */
 	if (dcs->d_enclosing->d_kind == DLK_EXTERN &&
 	    decl->s_type == dcs->d_enclosing->d_type) {
 		dcs->d_enclosing->d_func_proto_syms = dcs->d_first_dlsym;
-		dcs->d_enclosing->d_func_args = params.first;
+		dcs->d_enclosing->d_func_params = params.first;
 		debug_dcs_all();
 	}
 
@@ -1432,7 +1432,7 @@ check_function_definition(sym_t *sym, bo
 			error(22);
 		}
 		sym->s_osdef = false;
-		sym->u.s_old_style_args = NULL;
+		sym->u.s_old_style_params = NULL;
 	}
 }
 
@@ -1444,8 +1444,8 @@ declarator_name(sym_t *sym)
 
 	if (sym->s_scl == NOSCL)
 		dcs->d_redeclared_symbol = NULL;
-	else if (sym->s_defarg) {
-		sym->s_defarg = false;
+	else if (sym->s_defparam) {
+		sym->s_defparam = false;
 		dcs->d_redeclared_symbol = NULL;
 	} else {
 		dcs->d_redeclared_symbol = sym;
@@ -1480,9 +1480,9 @@ declarator_name(sym_t *sym)
 		}
 		break;
 	case DLK_PROTO_PARAMS:
-		sym->s_arg = true;
+		sym->s_param = true;
 		/* FALLTHROUGH */
-	case DLK_OLD_STYLE_ARGS:;
+	case DLK_OLD_STYLE_PARAMS:
 		lint_assert(dcs->d_scl == NOSCL || dcs->d_scl == REG);
 		sym->s_register = dcs->d_scl == REG;
 		sc = AUTO;
@@ -1533,14 +1533,15 @@ old_style_function_parameter_name(sym_t 
 		if (block_level == sym->s_block_level) {
 			/* redeclaration of formal parameter '%s' */
 			error(21, sym->s_name);
-			lint_assert(sym->s_defarg);
+			lint_assert(sym->s_defparam);
 		}
 		sym = pushdown(sym);
 	}
 	sym->s_type = gettyp(INT);
 	sym->s_scl = AUTO;
 	sym->s_def = DEF;
-	sym->s_defarg = sym->s_arg = true;
+	sym->s_defparam = true;
+	sym->s_param = true;
 	debug_sym("old_style_function_parameter_name: ", sym, "\n");
 	return sym;
 }
@@ -1770,7 +1771,7 @@ enumeration_constant(sym_t *sym, int val
 	if (sym->s_scl != NOSCL) {
 		if (sym->s_block_level == block_level) {
 			/* no hflag, because this is illegal */
-			if (sym->s_arg) {
+			if (sym->s_param) {
 				/* enumeration constant '%s' hides parameter */
 				warning(57, sym->s_name);
 			} else {
@@ -1872,35 +1873,35 @@ check_init(sym_t *sym)
 }
 
 /*
- * Compares a prototype declaration with the remembered arguments of a previous
- * old-style function definition.
+ * Compares a prototype declaration with the remembered parameters of a
+ * previous old-style function definition.
  */
 static bool
 check_old_style_definition(const sym_t *rdsym, const sym_t *dsym)
 {
 
-	const sym_t *args = rdsym->u.s_old_style_args;
-	const sym_t *pargs = dsym->s_type->t_args;
+	const sym_t *old_params = rdsym->u.s_old_style_params;
+	const sym_t *proto_params = dsym->s_type->t_params;
 
 	bool msg = false;
 
-	int narg = 0;
-	for (const sym_t *arg = args; arg != NULL; arg = arg->s_next)
-		narg++;
-	int nparg = 0;
-	for (const sym_t *parg = pargs; parg != NULL; parg = parg->s_next)
-		nparg++;
-	if (narg != nparg) {
+	int old_n = 0;
+	for (const sym_t *p = old_params; p != NULL; p = p->s_next)
+		old_n++;
+	int proto_n = 0;
+	for (const sym_t *p = proto_params; p != NULL; p = p->s_next)
+		proto_n++;
+	if (old_n != proto_n) {
 		/* prototype does not match old-style definition */
 		error(63);
 		msg = true;
 		goto end;
 	}
 
-	const sym_t *arg = args;
-	const sym_t *parg = pargs;
+	const sym_t *arg = old_params;
+	const sym_t *parg = proto_params;
 	int n = 1;
-	while (narg-- > 0) {
+	while (old_n-- > 0) {
 		bool dowarn = false;
 		if (!types_compatible(arg->s_type, parg->s_type,
 		    true, true, &dowarn) ||
@@ -1982,7 +1983,7 @@ declare_extern(sym_t *dsym, bool has_ini
 		/*
 		 * If the old symbol stems from an old-style function
 		 * definition, we have remembered the params in
-		 * rdsym->s_old_style_args and compare them with the params
+		 * rdsym->s_old_style_params and compare them with the params
 		 * of the prototype.
 		 */
 		bool redec = rdsym->s_osdef && dsym->s_type->t_proto &&
@@ -2007,8 +2008,8 @@ declare_extern(sym_t *dsym, bool has_ini
 			 */
 			if (rdsym->s_osdef && !dsym->s_type->t_proto) {
 				dsym->s_osdef = rdsym->s_osdef;
-				dsym->u.s_old_style_args =
-				    rdsym->u.s_old_style_args;
+				dsym->u.s_old_style_params =
+				    rdsym->u.s_old_style_params;
 				dsym->s_def_pos = rdsym->s_def_pos;
 			}
 
@@ -2048,17 +2049,17 @@ declare(sym_t *decl, bool has_initialize
 
 	if (dcs->d_kind == DLK_EXTERN)
 		declare_extern(decl, has_initializer, renaming);
-	else if (dcs->d_kind == DLK_OLD_STYLE_ARGS ||
+	else if (dcs->d_kind == DLK_OLD_STYLE_PARAMS ||
 		 dcs->d_kind == DLK_PROTO_PARAMS) {
 		if (renaming != NULL) {
-			/* symbol renaming can't be used on function arguments */
+			/* symbol renaming can't be used on function ... */
 			error(310);
 		} else
-			(void)declare_argument(decl, has_initializer);
+			(void)declare_parameter(decl, has_initializer);
 	} else {
 		lint_assert(dcs->d_kind == DLK_AUTO);
 		if (renaming != NULL) {
-			/* symbol renaming can't be used on automatic variables */
+			/* symbol renaming can't be used on automatic ... */
 			error(311);
 		} else
 			declare_local(decl, has_initializer);
@@ -2185,15 +2186,15 @@ prototypes_compatible(const type_t *tp1,
 	if (tp1->t_vararg != tp2->t_vararg)
 		return false;
 
-	sym_t *a1 = tp1->t_args;
-	sym_t *a2 = tp2->t_args;
+	const sym_t *p1 = tp1->t_params;
+	const sym_t *p2 = tp2->t_params;
 
-	for (; a1 != NULL && a2 != NULL; a1 = a1->s_next, a2 = a2->s_next) {
-		if (!types_compatible(a1->s_type, a2->s_type,
+	for (; p1 != NULL && p2 != NULL; p1 = p1->s_next, p2 = p2->s_next) {
+		if (!types_compatible(p1->s_type, p2->s_type,
 		    true, false, dowarn))
 			return false;
 	}
-	return a1 == a2;
+	return p1 == p2;
 }
 
 /*
@@ -2212,8 +2213,8 @@ matches_no_arg_function(const type_t *tp
 
 	if (tp->t_vararg && dowarn != NULL)
 		*dowarn = true;
-	for (sym_t *arg = tp->t_args; arg != NULL; arg = arg->s_next) {
-		tspec_t t = arg->s_type->t_tspec;
+	for (const sym_t *p = tp->t_params; p != NULL; p = p->s_next) {
+		tspec_t t = p->s_type->t_tspec;
 		if (t == FLOAT ||
 		    t == CHAR || t == SCHAR || t == UCHAR ||
 		    t == SHORT || t == USHORT) {
@@ -2324,7 +2325,7 @@ complete_type(sym_t *dsym, sym_t *ssym)
 			if (!dst->t_proto && src->t_proto) {
 				*dstp = dst = block_dup_type(dst);
 				dst->t_proto = true;
-				dst->t_args = src->t_args;
+				dst->t_params = src->t_params;
 			}
 		}
 		dstp = &dst->t_subt;
@@ -2335,11 +2336,8 @@ complete_type(sym_t *dsym, sym_t *ssym)
 	debug_sym("ssym: ", ssym, "\n");
 }
 
-/*
- * Completes the declaration of a single argument.
- */
 sym_t *
-declare_argument(sym_t *sym, bool has_initializer)
+declare_parameter(sym_t *sym, bool has_initializer)
 {
 
 	check_function_definition(sym, true);
@@ -2351,13 +2349,13 @@ declare_argument(sym_t *sym, bool has_in
 		/* redeclaration of formal parameter '%s' */
 		error(237, sym->s_name);
 		rmsym(dcs->d_redeclared_symbol);
-		sym->s_arg = true;
+		sym->s_param = true;
 	}
 
-	if (!sym->s_arg) {
-		/* declared argument '%s' is missing */
+	if (!sym->s_param) {
+		/* declared parameter '%s' is missing */
 		error(53, sym->s_name);
-		sym->s_arg = true;
+		sym->s_param = true;
 	}
 
 	if (has_initializer) {
@@ -2429,31 +2427,31 @@ check_func_lint_directives(void)
 	}
 
 	/*
-	 * check if the argument of a lint directive is compatible with the
-	 * number of arguments.
+	 * check if the numeric argument of a lint directive is compatible with
+	 * the number of parameters of the function.
 	 */
 	int narg = 0;
-	for (sym_t *arg = dcs->d_func_args; arg != NULL; arg = arg->s_next)
+	for (const sym_t *p = dcs->d_func_params; p != NULL; p = p->s_next)
 		narg++;
 	if (nargusg > narg) {
-		/* argument number mismatch in comment ** %s ** */
+		/* parameter number mismatch in comment ** %s ** */
 		warning(283, "ARGSUSED");
 		nargusg = 0;
 	}
 	if (nvararg > narg) {
-		/* argument number mismatch in comment ** %s ** */
+		/* parameter number mismatch in comment ** %s ** */
 		warning(283, "VARARGS");
 		nvararg = 0;
 	}
 	if (printflike_argnum > narg) {
-		/* argument number mismatch in comment ** %s ** */
+		/* parameter number mismatch in comment ** %s ** */
 		warning(283, "PRINTFLIKE");
 		printflike_argnum = -1;
 	} else if (printflike_argnum == 0) {
 		printflike_argnum = -1;
 	}
 	if (scanflike_argnum > narg) {
-		/* argument number mismatch in comment ** %s ** */
+		/* parameter number mismatch in comment ** %s ** */
 		warning(283, "SCANFLIKE");
 		scanflike_argnum = -1;
 	} else if (scanflike_argnum == 0) {
@@ -2462,11 +2460,11 @@ check_func_lint_directives(void)
 	if (printflike_argnum != -1 || scanflike_argnum != -1) {
 		narg = printflike_argnum != -1
 		    ? printflike_argnum : scanflike_argnum;
-		const sym_t *arg = dcs->d_func_args;
+		const sym_t *param = dcs->d_func_params;
 		for (int n = 1; n < narg; n++)
-			arg = arg->s_next;
-		if (!is_character_pointer(arg->s_type)) {
-			/* argument %d must be 'char *' for PRINTFLIKE/... */
+			param = param->s_next;
+		if (!is_character_pointer(param->s_type)) {
+			/* parameter %d must be 'char *' for PRINTFLIKE/... */
 			warning(293, narg);
 			printflike_argnum = scanflike_argnum = -1;
 		}
@@ -2479,19 +2477,19 @@ check_func_lint_directives(void)
  * Returns true if the position of the previous declaration should be reported.
  */
 static bool
-check_prototype_declaration(sym_t *arg, sym_t *parg)
+check_prototype_declaration(const sym_t *old_param, const sym_t *proto_param)
 {
-	type_t *tp = arg->s_type;
-	type_t *ptp = parg->s_type;
+	type_t *old_tp = old_param->s_type;
+	type_t *proto_tp = proto_param->s_type;
 	bool dowarn = false;
 
-	if (!types_compatible(tp, ptp, true, true, &dowarn)) {
-		if (types_compatible(tp, ptp, true, false, &dowarn)) {
+	if (!types_compatible(old_tp, proto_tp, true, true, &dowarn)) {
+		if (types_compatible(old_tp, proto_tp, true, false, &dowarn)) {
 			/* type of '%s' does not match prototype */
-			return gnuism(58, arg->s_name);
+			return gnuism(58, old_param->s_name);
 		} else {
 			/* type of '%s' does not match prototype */
-			error(58, arg->s_name);
+			error(58, old_param->s_name);
 			return true;
 		}
 	}
@@ -2499,10 +2497,10 @@ check_prototype_declaration(sym_t *arg, 
 		/* TODO: Make this an error in C99 mode as well. */
 		if (!allow_trad && !allow_c99)
 			/* type of '%s' does not match prototype */
-			error(58, arg->s_name);
+			error(58, old_param->s_name);
 		else
 			/* type of '%s' does not match prototype */
-			warning(58, arg->s_name);
+			warning(58, old_param->s_name);
 		return true;
 	}
 
@@ -2510,59 +2508,51 @@ check_prototype_declaration(sym_t *arg, 
 }
 
 /*
- * Warn about arguments in old-style function definitions that default to int.
+ * Warn about parameters in old-style function definitions that default to int.
  * Check that an old-style function definition is compatible to a previous
  * prototype.
  */
 void
-check_func_old_style_arguments(void)
+check_func_old_style_parameters(void)
 {
-	int narg;
-	int nparg;
-	bool msg;
+	sym_t *old_params = funcsym->u.s_old_style_params;
+	sym_t *proto_params = funcsym->s_type->t_params;
 
-	sym_t *args = funcsym->u.s_old_style_args;
-	sym_t *pargs = funcsym->s_type->t_args;
-
-	/*
-	 * print a warning for each argument of an old-style function
-	 * definition which defaults to int
-	 */
-	for (sym_t *arg = args; arg != NULL; arg = arg->s_next) {
-		if (arg->s_defarg) {
-			/* type of argument '%s' defaults to 'int' */
+	for (sym_t *arg = old_params; arg != NULL; arg = arg->s_next) {
+		if (arg->s_defparam) {
+			/* type of parameter '%s' defaults to 'int' */
 			warning(32, arg->s_name);
-			arg->s_defarg = false;
+			arg->s_defparam = false;
 			mark_as_set(arg);
 		}
 	}
 
 	/*
 	 * If this is an old-style function definition and a prototype
-	 * exists, compare the types of arguments.
+	 * exists, compare the types of parameters.
 	 */
 	if (funcsym->s_osdef && funcsym->s_type->t_proto) {
 		/*
-		 * If the number of arguments does not match, we need not
+		 * If the number of parameters does not match, we need not
 		 * continue.
 		 */
-		narg = nparg = 0;
-		msg = false;
-		for (sym_t *parg = pargs; parg != NULL; parg = parg->s_next)
-			nparg++;
-		for (sym_t *arg = args; arg != NULL; arg = arg->s_next)
-			narg++;
-		if (narg != nparg) {
+		int old_n = 0, proto_n = 0;
+		bool msg = false;
+		for (const sym_t *p = proto_params; p != NULL; p = p->s_next)
+			proto_n++;
+		for (const sym_t *p = old_params; p != NULL; p = p->s_next)
+			old_n++;
+		if (old_n != proto_n) {
 			/* parameter mismatch: %d declared, %d defined */
-			error(51, nparg, narg);
+			error(51, proto_n, old_n);
 			msg = true;
 		} else {
-			sym_t *parg = pargs;
-			sym_t *arg = args;
-			while (narg-- > 0) {
-				msg |= check_prototype_declaration(arg, parg);
-				parg = parg->s_next;
-				arg = arg->s_next;
+			const sym_t *proto_param = proto_params;
+			const sym_t *old_param = old_params;
+			while (old_n-- > 0) {
+				msg |= check_prototype_declaration(old_param, proto_param);
+				proto_param = proto_param->s_next;
+				old_param = old_param->s_next;
 			}
 		}
 		if (msg && rflag) {
@@ -2572,7 +2562,7 @@ check_func_old_style_arguments(void)
 
 		/* from now on the prototype is valid */
 		funcsym->s_osdef = false;
-		funcsym->u.s_old_style_args = NULL;
+		funcsym->u.s_old_style_params = NULL;
 	}
 }
 
@@ -2610,7 +2600,7 @@ check_local_redeclaration(const sym_t *d
 	} else if (rdsym->s_block_level == block_level) {
 
 		/* no hflag, because it's illegal! */
-		if (rdsym->s_arg) {
+		if (rdsym->s_param) {
 			/*
 			 * if allow_c90, a "redeclaration of '%s'" error
 			 * is produced below
@@ -2789,7 +2779,7 @@ abstract_name(void)
 	sym->s_def = DEF;
 	sym->s_scl = ABSTRACT;
 	sym->s_block_level = -1;
-	sym->s_arg = dcs->d_kind == DLK_PROTO_PARAMS;
+	sym->s_param = dcs->d_kind == DLK_PROTO_PARAMS;
 
 	/*
 	 * At this point, dcs->d_type contains only the basic type.  That
@@ -2901,7 +2891,7 @@ check_usage(const decl_level *dl)
 }
 
 static void
-check_argument_usage(bool novar, const sym_t *arg)
+check_parameter_usage(bool novar, const sym_t *arg)
 {
 
 	lint_assert(arg->s_set);
@@ -3037,8 +3027,8 @@ check_usage_sym(bool novar, const sym_t 
 	if (sym->s_block_level == -1)
 		return;
 
-	if (sym->s_kind == FVFT && sym->s_arg)
-		check_argument_usage(novar, sym);
+	if (sym->s_kind == FVFT && sym->s_param)
+		check_parameter_usage(novar, sym);
 	else if (sym->s_kind == FVFT)
 		check_variable_usage(novar, sym);
 	else if (sym->s_kind == FLABEL)

Index: src/usr.bin/xlint/lint1/emit1.c
diff -u src/usr.bin/xlint/lint1/emit1.c:1.72 src/usr.bin/xlint/lint1/emit1.c:1.73
--- src/usr.bin/xlint/lint1/emit1.c:1.72	Thu Jul 13 08:40:38 2023
+++ src/usr.bin/xlint/lint1/emit1.c	Wed Aug  2 18:51:25 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: emit1.c,v 1.72 2023/07/13 08:40:38 rillig Exp $ */
+/* $NetBSD: emit1.c,v 1.73 2023/08/02 18:51:25 rillig Exp $ */
 
 /*
  * Copyright (c) 1996 Christopher G. Demetriou.  All Rights Reserved.
@@ -38,7 +38,7 @@
 
 #include <sys/cdefs.h>
 #if defined(__RCSID)
-__RCSID("$NetBSD: emit1.c,v 1.72 2023/07/13 08:40:38 rillig Exp $");
+__RCSID("$NetBSD: emit1.c,v 1.73 2023/08/02 18:51:25 rillig Exp $");
 #endif
 
 #include "lint1.h"
@@ -101,7 +101,6 @@ outtype(const type_t *tp)
 	static const char ss[NTSPEC] = "???  su u u u us l?s l sue   ";
 #endif
 	int na;
-	sym_t *arg;
 	tspec_t ts;
 
 	while (tp != NULL) {
@@ -124,13 +123,15 @@ outtype(const type_t *tp)
 			outtt(tp->t_sou->sou_tag, tp->t_sou->sou_first_typedef);
 		} else if (ts == FUNC && tp->t_proto) {
 			na = 0;
-			for (arg = tp->t_args; arg != NULL; arg = arg->s_next)
+			for (const sym_t *param = tp->t_params;
+			     param != NULL; param = param->s_next)
 				na++;
 			if (tp->t_vararg)
 				na++;
 			outint(na);
-			for (arg = tp->t_args; arg != NULL; arg = arg->s_next)
-				outtype(arg->s_type);
+			for (const sym_t *param = tp->t_params;
+			     param != NULL; param = param->s_next)
+				outtype(param->s_type);
 			if (tp->t_vararg)
 				outchar('E');
 		}
@@ -311,7 +312,7 @@ outfdef(const sym_t *fsym, const pos_t *
 		outname(fsym->s_rename);
 	}
 
-	/* argument types and return value */
+	/* parameter types and return value */
 	if (osdef) {
 		narg = 0;
 		for (arg = args; arg != NULL; arg = arg->s_next)

Index: src/usr.bin/xlint/lint1/err.c
diff -u src/usr.bin/xlint/lint1/err.c:1.214 src/usr.bin/xlint/lint1/err.c:1.215
--- src/usr.bin/xlint/lint1/err.c:1.214	Sat Jul 29 10:45:00 2023
+++ src/usr.bin/xlint/lint1/err.c	Wed Aug  2 18:51:25 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: err.c,v 1.214 2023/07/29 10:45:00 rillig Exp $	*/
+/*	$NetBSD: err.c,v 1.215 2023/08/02 18:51:25 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.214 2023/07/29 10:45:00 rillig Exp $");
+__RCSID("$NetBSD: err.c,v 1.215 2023/08/02 18:51:25 rillig Exp $");
 #endif
 
 #include <limits.h>
@@ -58,7 +58,7 @@ static const char *const msgs[] = {
 	"empty declaration",					      /* 0 */
 	"old-style declaration; add 'int'",			      /* 1 */
 	"empty declaration",					      /* 2 */
-	"'%s' declared in argument declaration list",		      /* 3 */
+	"'%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 */
@@ -87,7 +87,7 @@ static const char *const msgs[] = {
 	"'%s' was previously declared extern, becomes static",	      /* 29 */
 	"redeclaration of '%s'; ANSI C requires static",	      /* 30 */
 	"'%s' has incomplete type '%s'",			      /* 31 */
-	"type of argument '%s' defaults to 'int'",		      /* 32 */
+	"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 */
@@ -108,7 +108,7 @@ static const char *const msgs[] = {
 	"parameter '%s' has function type, should be pointer",	      /* 50 */
 	"parameter mismatch: %d declared, %d defined",		      /* 51 */
 	"cannot initialize parameter '%s'",			      /* 52 */
-	"declared argument '%s' is missing",			      /* 53 */
+	"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 */
@@ -294,7 +294,7 @@ static const char *const msgs[] = {
 	"static function '%s' unused",				      /* 236 */
 	"redeclaration of formal parameter '%s'",		      /* 237 */
 	"initialization of union is illegal in traditional C",	      /* 238 */
-	"constant argument to '!'",				      /* 239 */
+	"constant operand to '!'",				      /* 239 */
 	"",			/* unused */			      /* 240 */
 	"dubious operation '%s' on enum",			      /* 241 */
 	"combination of '%s' and '%s', op '%s'",		      /* 242 */
@@ -338,7 +338,7 @@ static const char *const msgs[] = {
 	"comment /* %s */ must be outside function",		      /* 280 */
 	"duplicate comment /* %s */",				      /* 281 */
 	"comment /* %s */ must precede function definition",	      /* 282 */
-	"argument number mismatch in comment /* %s */",		      /* 283 */
+	"parameter number mismatch in comment /* %s */",	      /* 283 */
 	"fallthrough on default statement",			      /* 284 */
 	"prototype declaration",				      /* 285 */
 	"function definition is not a prototype",		      /* 286 */
@@ -348,7 +348,7 @@ static const char *const msgs[] = {
 	"static function '%s' declared but not defined",	      /* 290 */
 	"invalid multibyte character",				      /* 291 */
 	"cannot concatenate wide and regular string literals",	      /* 292 */
-	"argument %d must be 'char *' for PRINTFLIKE/SCANFLIKE",      /* 293 */
+	"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 */
@@ -365,7 +365,7 @@ static const char *const msgs[] = {
 	"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 arguments",	      /* 310 */
+	"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 */
@@ -389,7 +389,7 @@ static const char *const msgs[] = {
 	"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 */
-	"argument %d expects '%s', gets passed '%s'",		      /* 334 */
+	"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 */

Index: src/usr.bin/xlint/lint1/externs1.h
diff -u src/usr.bin/xlint/lint1/externs1.h:1.204 src/usr.bin/xlint/lint1/externs1.h:1.205
--- src/usr.bin/xlint/lint1/externs1.h:1.204	Tue Aug  1 16:08:58 2023
+++ src/usr.bin/xlint/lint1/externs1.h	Wed Aug  2 18:51:25 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: externs1.h,v 1.204 2023/08/01 16:08:58 rillig Exp $	*/
+/*	$NetBSD: externs1.h,v 1.205 2023/08/02 18:51:25 rillig Exp $	*/
 
 /*
  * Copyright (c) 1994, 1995 Jochen Pohl
@@ -248,9 +248,9 @@ bool	check_redeclaration(sym_t *, bool *
 bool	pointer_types_are_compatible(const type_t *, const type_t *, bool);
 bool	types_compatible(const type_t *, const type_t *, bool, bool, bool *);
 void	complete_type(sym_t *, sym_t *);
-sym_t	*declare_argument(sym_t *, bool);
+sym_t	*declare_parameter(sym_t *, bool);
 void	check_func_lint_directives(void);
-void	check_func_old_style_arguments(void);
+void	check_func_old_style_parameters(void);
 
 void	declare_local(sym_t *, bool);
 sym_t	*abstract_name(void);

Index: src/usr.bin/xlint/lint1/func.c
diff -u src/usr.bin/xlint/lint1/func.c:1.172 src/usr.bin/xlint/lint1/func.c:1.173
--- src/usr.bin/xlint/lint1/func.c:1.172	Sat Jul 29 07:49:14 2023
+++ src/usr.bin/xlint/lint1/func.c	Wed Aug  2 18:51:25 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: func.c,v 1.172 2023/07/29 07:49:14 rillig Exp $	*/
+/*	$NetBSD: func.c,v 1.173 2023/08/02 18:51:25 rillig Exp $	*/
 
 /*
  * Copyright (c) 1994, 1995 Jochen Pohl
@@ -37,7 +37,7 @@
 
 #include <sys/cdefs.h>
 #if defined(__RCSID)
-__RCSID("$NetBSD: func.c,v 1.172 2023/07/29 07:49:14 rillig Exp $");
+__RCSID("$NetBSD: func.c,v 1.173 2023/08/02 18:51:25 rillig Exp $");
 #endif
 
 #include <stdlib.h>
@@ -80,8 +80,8 @@ bool	suppress_fallthrough;
 static control_statement *cstmt;
 
 /*
- * Number of arguments which will be checked for usage in following
- * function definition. -1 stands for all arguments.
+ * Number of parameters which will be checked for usage in following
+ * function definition. -1 stands for all parameters.
  *
  * The position of the last ARGSUSED comment is stored in argsused_pos.
  */
@@ -89,8 +89,8 @@ int	nargusg = -1;
 pos_t	argsused_pos;
 
 /*
- * Number of arguments of the following function definition whose types
- * shall be checked by lint2. -1 stands for all arguments.
+ * Number of parameters of the following function definition whose types
+ * shall be checked by lint2. -1 stands for all parameters.
  *
  * The position of the last VARARGS comment is stored in vapos.
  */
@@ -99,7 +99,7 @@ pos_t	vapos;
 
 /*
  * Both printflike_argnum and scanflike_argnum contain the 1-based number
- * of the string argument which shall be used to check the types of remaining
+ * of the string parameter which shall be used to check the types of remaining
  * arguments (for PRINTFLIKE and SCANFLIKE).
  *
  * printflike_pos and scanflike_pos are the positions of the last PRINTFLIKE
@@ -201,9 +201,9 @@ check_statement_reachable(void)
 
 /*
  * Called after a function declaration which introduces a function definition
- * and before an (optional) old-style argument declaration list.
+ * and before an (optional) old-style parameter declaration list.
  *
- * Puts all symbols declared in the prototype or in an old-style argument
+ * Puts all symbols declared in the prototype or in an old-style parameter
  * list back to the symbol table.
  *
  * Does the usual checking of storage class, type (return value),
@@ -214,12 +214,12 @@ begin_function(sym_t *fsym)
 {
 	int n;
 	bool dowarn;
-	sym_t *arg, *sym, *rdsym;
+	sym_t *sym, *rdsym;
 
 	funcsym = fsym;
 
 	/*
-	 * Put all symbols declared in the argument list back to the
+	 * Put all symbols declared in the parameter list back to the
 	 * symbol table.
 	 */
 	for (sym = dcs->d_func_proto_syms; sym != NULL;
@@ -233,9 +233,9 @@ begin_function(sym_t *fsym)
 	/*
 	 * In old_style_function() we did not know whether it is an old
 	 * style function definition or only an old-style declaration,
-	 * if there are no arguments inside the argument list ("f()").
+	 * if there are no parameters inside the parameter list ("f()").
 	 */
-	if (!fsym->s_type->t_proto && fsym->u.s_old_style_args == NULL)
+	if (!fsym->s_type->t_proto && fsym->u.s_old_style_params == NULL)
 		fsym->s_osdef = true;
 
 	check_type(fsym);
@@ -262,17 +262,18 @@ begin_function(sym_t *fsym)
 		fsym->s_inline = true;
 
 	/*
-	 * Arguments in new style function declarations need a name.
-	 * (void is already removed from the list of arguments)
+	 * Parameters in new-style function declarations need a name.
+	 * ('void' is already removed from the list of parameters.)
 	 */
 	n = 1;
-	for (arg = fsym->s_type->t_args; arg != NULL; arg = arg->s_next) {
-		if (arg->s_scl == ABSTRACT) {
-			lint_assert(arg->s_name == unnamed);
+	for (const sym_t *param = fsym->s_type->t_params;
+	     param != NULL; param = param->s_next) {
+		if (param->s_scl == ABSTRACT) {
+			lint_assert(param->s_name == unnamed);
 			/* formal parameter #%d lacks name */
 			error(59, n);
 		} else {
-			lint_assert(arg->s_name != unnamed);
+			lint_assert(param->s_name != unnamed);
 		}
 		n++;
 	}
@@ -380,9 +381,9 @@ end_function(void)
 	/* Warn about unused parameters. */
 	int n = nargusg;
 	nargusg = -1;
-	for (sym_t *arg = dcs->d_func_args;
-	     arg != NULL && n != 0; arg = arg->s_next, n--)
-		check_usage_sym(dcs->d_asm, arg);
+	for (const sym_t *param = dcs->d_func_params;
+	     param != NULL && n != 0; param = param->s_next, n--)
+		check_usage_sym(dcs->d_asm, param);
 
 	/*
 	 * write the information about the function definition to the
@@ -395,7 +396,7 @@ end_function(void)
 	} else {
 		outfdef(funcsym, &dcs->d_func_def_pos,
 		    cstmt->c_had_return_value, funcsym->s_osdef,
-		    dcs->d_func_args);
+		    dcs->d_func_params);
 	}
 
 	/* clean up after syntax errors, see test stmt_for.c. */
@@ -403,8 +404,8 @@ end_function(void)
 		dcs = dcs->d_enclosing;
 
 	/*
-	 * remove all symbols declared during argument declaration from
-	 * the symbol table
+	 * Remove all symbols declared during the parameter declaration from
+	 * the symbol table.
 	 */
 	lint_assert(dcs->d_enclosing == NULL);
 	lint_assert(dcs->d_kind == DLK_EXTERN);
@@ -1118,7 +1119,7 @@ global_clean_up_decl(bool silent)
 }
 
 /*
- * Only the first n arguments of the following function are checked for usage.
+ * Only the first n parameters of the following function are checked for usage.
  * A missing argument is taken to be 0.
  */
 static void
@@ -1162,8 +1163,8 @@ varargs(int n)
 }
 
 /*
- * Check all arguments until the (n-1)-th as usual. The n-th argument is
- * used the check the types of remaining arguments.
+ * Check all parameters until the (n-1)-th as usual. The n-th argument is
+ * used to check the types of the remaining arguments.
  */
 static void
 printflike(int n)
@@ -1186,7 +1187,7 @@ printflike(int n)
 }
 
 /*
- * Check all arguments until the (n-1)-th as usual. The n-th argument is
+ * Check all parameters until the (n-1)-th as usual. The n-th argument is
  * used the check the types of remaining arguments.
  */
 static void

Index: src/usr.bin/xlint/lint1/lint1.h
diff -u src/usr.bin/xlint/lint1/lint1.h:1.198 src/usr.bin/xlint/lint1/lint1.h:1.199
--- src/usr.bin/xlint/lint1/lint1.h:1.198	Tue Aug  1 19:57:38 2023
+++ src/usr.bin/xlint/lint1/lint1.h	Wed Aug  2 18:51:25 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: lint1.h,v 1.198 2023/08/01 19:57:38 rillig Exp $ */
+/* $NetBSD: lint1.h,v 1.199 2023/08/02 18:51:25 rillig Exp $ */
 
 /*
  * Copyright (c) 1996 Christopher G. Demetriou.  All Rights Reserved.
@@ -156,7 +156,7 @@ struct lint1_type {
 	bool	t_incomplete_array:1;
 	bool	t_const:1;	/* const modifier */
 	bool	t_volatile:1;	/* volatile modifier */
-	bool	t_proto:1;	/* function prototype (t_args valid) */
+	bool	t_proto:1;	/* function prototype (t_params valid) */
 	bool	t_vararg:1;	/* prototype with '...' */
 	bool	t_typedef:1;	/* type defined with typedef */
 	bool	t_typeof:1;	/* type defined with GCC's __typeof__ */
@@ -176,7 +176,7 @@ struct lint1_type {
 		int	_t_dim;		/* dimension (if ARRAY) */
 		struct_or_union	*_t_sou;
 		enumeration	*_t_enum;
-		struct	sym *_t_args;	/* arguments (if t_proto) */
+		struct	sym *_t_params;	/* parameters (if t_proto) */
 	} t_u;
 	unsigned int	t_bit_field_width:8;
 	unsigned int	t_bit_field_offset:24;
@@ -188,7 +188,7 @@ struct lint1_type {
 #define	t_dim	t_u._t_dim
 #define	t_sou	t_u._t_sou
 #define	t_enum	t_u._t_enum
-#define	t_args	t_u._t_args
+#define	t_params	t_u._t_params
 
 /*
  * types of symbols
@@ -244,9 +244,9 @@ typedef	struct sym {
 	bool	s_bitfield:1;
 	bool	s_set:1;	/* variable set, label defined */
 	bool	s_used:1;	/* variable/label used */
-	bool	s_arg:1;	/* symbol is function argument */
+	bool	s_param:1;	/* symbol is function parameter */
 	bool	s_register:1;	/* symbol is register variable */
-	bool	s_defarg:1;	/* undefined symbol in old-style function
+	bool	s_defparam:1;	/* undefined symbol in old-style function
 				   definition */
 	bool	s_return_type_implicit_int:1;
 	bool	s_osdef:1;	/* symbol stems from old-style function def. */
@@ -277,14 +277,14 @@ typedef	struct sym {
 				function_specifier function_specifier;
 			} u;
 		} s_keyword;
-		struct	sym *s_old_style_args;	/* arguments in an old-style
+		struct	sym *s_old_style_params;	/* parameters in an old-style
 						 * function definition */
 	} u;
 	struct	sym *s_symtab_next;	/* next symbol with same hash value */
 	struct	sym **s_symtab_ref;	/* pointer to s_symtab_next of the
 					 * previous symbol */
 	struct	sym *s_next;	/* next struct/union member, enumerator,
-				   argument */
+				   parameter */
 	struct	sym *s_level_next;	/* next symbol declared on the same
 					 * level */
 } sym_t;
@@ -347,7 +347,7 @@ typedef enum decl_level_kind {
 	DLK_STRUCT,		/* members */
 	DLK_UNION,		/* members */
 	DLK_ENUM,		/* constants */
-	DLK_OLD_STYLE_ARGS,	/* arguments in an old-style function
+	DLK_OLD_STYLE_PARAMS,	/* parameters in an old-style function
 				 * definition */
 	DLK_PROTO_PARAMS,	/* parameters in a prototype function
 				 * definition */
@@ -357,8 +357,9 @@ typedef enum decl_level_kind {
 } decl_level_kind;
 
 /*
- * A declaration level describes a struct, union, enum, block, argument
- * declaration list or an abstract (unnamed) type.
+ * A declaration level collects information for a declarator in a struct,
+ * union or enum declaration, a parameter declaration list, or a plain
+ * declaration in or outside a function body.
  *
  * For nested declarations, the global 'dcs' holds all information needed for
  * the current level, the outer levels are available via 'd_enclosing'.
@@ -390,7 +391,7 @@ typedef	struct decl_level {
 	bool	d_used:1;
 	type_t	*d_tag_type;	/* during a member declaration, the tag type to
 				 * which the member belongs */
-	sym_t	*d_func_args;	/* during a function declaration, the
+	sym_t	*d_func_params;	/* during a function declaration, the
 				 * parameters, stored in the enclosing level */
 	pos_t	d_func_def_pos;	/* position of the function definition */
 	sym_t	*d_first_dlsym;	/* first symbol declared at this level */
@@ -398,7 +399,7 @@ typedef	struct decl_level {
 				   declaration at this level */
 	sym_t	*d_func_proto_syms;	/* symbols defined in prototype, such
 					 * as tagged types or parameter names,
-					 * may overlap d_func_args */
+					 * may overlap d_func_params */
 	struct decl_level *d_enclosing; /* the enclosing declaration level */
 } decl_level;
 

Index: src/usr.bin/xlint/lint1/tree.c
diff -u src/usr.bin/xlint/lint1/tree.c:1.573 src/usr.bin/xlint/lint1/tree.c:1.574
--- src/usr.bin/xlint/lint1/tree.c:1.573	Sat Jul 15 15:51:22 2023
+++ src/usr.bin/xlint/lint1/tree.c	Wed Aug  2 18:51:25 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: tree.c,v 1.573 2023/07/15 15:51:22 rillig Exp $	*/
+/*	$NetBSD: tree.c,v 1.574 2023/08/02 18:51:25 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.573 2023/07/15 15:51:22 rillig Exp $");
+__RCSID("$NetBSD: tree.c,v 1.574 2023/08/02 18:51:25 rillig Exp $");
 #endif
 
 #include <float.h>
@@ -1491,7 +1491,7 @@ fold_bool(tnode_t *tn)
 	switch (tn->tn_op) {
 	case NOT:
 		if (hflag && !suppress_constcond)
-			/* constant argument to '!' */
+			/* constant operand to '!' */
 			warning(239);
 		v->u.integer = !l ? 1 : 0;
 		break;
@@ -1920,8 +1920,8 @@ remove_unknown_member(tnode_t *tn, sym_t
 }
 
 /*
- * Returns a symbol which has the same name as the msym argument and is a
- * member of the struct or union specified by the tn argument.
+ * Returns a symbol which has the same name as 'msym' and is a member of the
+ * struct or union specified by 'tn'.
  */
 static sym_t *
 struct_or_union_member(tnode_t *tn, op_t op, sym_t *msym)
@@ -3601,7 +3601,7 @@ convert_pointer_from_pointer(type_t *ntp
  *	binary	integer promotion for one of the operands, or a usual
  *		arithmetic conversion
  *	binary	plain or compound assignments to bit-fields
- *	FARG	'arg' is the number of the argument (used for warnings)
+ *	FARG	'arg' is the number of the parameter (used for warnings)
  *	NOOP	several other implicit conversions
  *	...
  */
@@ -3893,11 +3893,11 @@ convert_constant_check_range(tspec_t ot,
 		warn_constant_check_range_loss(op, arg, tp, ot);
 }
 
-/*
+/*-
  * Converts a typed constant to a constant of another type.
  *
  * op		operator which requires conversion
- * arg		if op is FARG, # of argument
+ * arg		if op is FARG, # of parameter
  * tp		type to which to convert the constant
  * nv		new constant
  * v		old constant
@@ -4162,7 +4162,7 @@ invalid_cast:
  * Create the node for a function argument.
  * All necessary conversions and type checks are done in
  * build_function_call because build_function_argument has no
- * information about expected argument types.
+ * information about the expected parameter types.
  */
 tnode_t *
 build_function_argument(tnode_t *args, tnode_t *arg)
@@ -4212,27 +4212,24 @@ check_function_arguments(type_t *ftp, tn
 {
 	/* get # of parameters in the prototype */
 	int npar = 0;
-	for (sym_t *asym = ftp->t_args; asym != NULL; asym = asym->s_next)
+	for (const sym_t *p = ftp->t_params; p != NULL; p = p->s_next)
 		npar++;
 
 	/* get # of arguments in the function call */
 	int narg = 0;
-	for (tnode_t *arg = args; arg != NULL; arg = arg->tn_right)
+	for (const tnode_t *arg = args; arg != NULL; arg = arg->tn_right)
 		narg++;
 
-	sym_t *asym = ftp->t_args;
+	const sym_t *param = ftp->t_params;
 	if (ftp->t_proto && npar != narg && !(ftp->t_vararg && npar < narg)) {
 		/* argument mismatch: %d %s passed, %d expected */
 		error(150, narg, narg > 1 ? "arguments" : "argument", npar);
-		asym = NULL;
+		param = NULL;
 	}
 
 	for (int n = 1; n <= narg; n++) {
 
-		/*
-		 * The rightmost argument is at the top of the argument
-		 * subtree.
-		 */
+		// The rightmost argument starts the argument list.
 		tnode_t *arg = args;
 		for (int i = narg; i > n; i--, arg = arg->tn_right)
 			continue;
@@ -4243,12 +4240,14 @@ check_function_arguments(type_t *ftp, tn
 			/* void expressions may not be arguments, arg #%d */
 			error(151, n);
 			return NULL;
-		} else if (is_struct_or_union(at) &&
+		}
+		if (is_struct_or_union(at) &&
 			   is_incomplete(arg->tn_left->tn_type)) {
 			/* argument cannot have unknown size, arg #%d */
 			error(152, n);
 			return NULL;
-		} else if (is_integer(at) &&
+		}
+		if (is_integer(at) &&
 			   arg->tn_left->tn_type->t_is_enum &&
 			   is_incomplete(arg->tn_left->tn_type)) {
 			/* argument cannot have unknown size, arg #%d */
@@ -4258,15 +4257,15 @@ check_function_arguments(type_t *ftp, tn
 		/* class conversions (arg in value context) */
 		arg->tn_left = cconv(arg->tn_left);
 
-		if (asym != NULL) {
+		if (param != NULL) {
 			arg->tn_left = check_prototype_argument(
-			    n, asym->s_type, arg->tn_left);
+			    n, param->s_type, arg->tn_left);
 		} else
 			arg->tn_left = promote(NOOP, true, arg->tn_left);
 		arg->tn_type = arg->tn_left->tn_type;
 
-		if (asym != NULL)
-			asym = asym->s_next;
+		if (param != NULL)
+			param = param->s_next;
 	}
 
 	return args;

Index: src/usr.bin/xlint/xlint/lint.1
diff -u src/usr.bin/xlint/xlint/lint.1:1.62 src/usr.bin/xlint/xlint/lint.1:1.63
--- src/usr.bin/xlint/xlint/lint.1:1.62	Mon Jul  3 11:16:32 2023
+++ src/usr.bin/xlint/xlint/lint.1	Wed Aug  2 18:51:25 2023
@@ -1,4 +1,4 @@
-.\" $NetBSD: lint.1,v 1.62 2023/07/03 11:16:32 rillig Exp $
+.\" $NetBSD: lint.1,v 1.63 2023/08/02 18:51:25 rillig Exp $
 .\"
 .\" Copyright (c) 1996 Christopher G. Demetriou.  All Rights Reserved.
 .\" Copyright (c) 1994, 1995 Jochen Pohl
@@ -30,7 +30,7 @@
 .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
 .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 .\"
-.Dd July 3, 2023
+.Dd August 2, 2023
 .Dt LINT 1
 .Os
 .Sh NAME
@@ -420,7 +420,7 @@ run the C preprocessor and
 .Nm Ns 's
 first and second pass.
 .It Fl v
-Suppress complaints about unused arguments in functions.
+Suppress complaints about unused parameters in functions.
 .It Fl W Ar cppwarnarg
 Pass the warning directive to
 .Xr cpp 1 .
@@ -462,7 +462,7 @@ Makes
 .Nm
 check only the first
 .Ar n
-arguments for usage; a missing
+parameters for usage; a missing
 .Ar n
 is taken to be 0 (this option acts like the
 .Fl v
@@ -483,7 +483,7 @@ This directive should be placed immediat
 At the beginning of a file, mark all functions and variables defined
 in this file as
 .Em used .
-Also shut off complaints about unused function arguments.
+Also shut off complaints about unused function parameters.
 .It Li /* LINTED Ns Ar n Oo Ar comment Oc Li */ No or Li /* NOSTRICT Ns Ar n Oo Ar comment Oc Li */
 Suppresses any intra-file warning except those dealing with
 unused variables or functions.

Reply via email to