Module Name: src
Committed By: rillig
Date: Wed Aug 2 05:44:27 UTC 2023
Modified Files:
src/tests/usr.bin/xlint/lint1: decl_arg.c
src/usr.bin/xlint/lint1: decl.c
Log Message:
lint: simplify handling of old-style arguments
To generate a diff of this commit:
cvs rdiff -u -r1.10 -r1.11 src/tests/usr.bin/xlint/lint1/decl_arg.c
cvs rdiff -u -r1.372 -r1.373 src/usr.bin/xlint/lint1/decl.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/tests/usr.bin/xlint/lint1/decl_arg.c
diff -u src/tests/usr.bin/xlint/lint1/decl_arg.c:1.10 src/tests/usr.bin/xlint/lint1/decl_arg.c:1.11
--- src/tests/usr.bin/xlint/lint1/decl_arg.c:1.10 Sun Jul 9 11:18:55 2023
+++ src/tests/usr.bin/xlint/lint1/decl_arg.c Wed Aug 2 05:44:27 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: decl_arg.c,v 1.10 2023/07/09 11:18:55 rillig Exp $ */
+/* $NetBSD: decl_arg.c,v 1.11 2023/08/02 05:44:27 rillig Exp $ */
# 3 "decl_arg.c"
/*
@@ -133,5 +133,23 @@ void cover_asm_or_symbolrename_asm(void)
void cover_asm_or_symbolrename_symbolrename(void)
__symbolrename(alternate_name);
+
+double
+f(e, s, r, a, t, n)
+ /* expect+1: error: only 'register' is valid as storage class in parameter [9] */
+ extern double e;
+ /* expect+1: error: only 'register' is valid as storage class in parameter [9] */
+ static double s;
+ register double r;
+ /* expect+1: error: only 'register' is valid as storage class in parameter [9] */
+ auto double a;
+ /* expect+1: error: only 'register' is valid as storage class in parameter [9] */
+ typedef double t;
+ double n;
+{
+ return e + s + r + a + t + n;
+}
+
+
// FIXME: internal error in decl.c:906 near decl_arg.c:134: length(0)
//void cover_abstract_declarator_typeof(void (*)(typeof(no_args)));
Index: src/usr.bin/xlint/lint1/decl.c
diff -u src/usr.bin/xlint/lint1/decl.c:1.372 src/usr.bin/xlint/lint1/decl.c:1.373
--- src/usr.bin/xlint/lint1/decl.c:1.372 Tue Aug 1 19:57:38 2023
+++ src/usr.bin/xlint/lint1/decl.c Wed Aug 2 05:44:27 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: decl.c,v 1.372 2023/08/01 19:57:38 rillig Exp $ */
+/* $NetBSD: decl.c,v 1.373 2023/08/02 05:44:27 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.372 2023/08/01 19:57:38 rillig Exp $");
+__RCSID("$NetBSD: decl.c,v 1.373 2023/08/02 05:44:27 rillig Exp $");
#endif
#include <sys/param.h>
@@ -1482,14 +1482,10 @@ declarator_name(sym_t *sym)
case DLK_PROTO_PARAMS:
sym->s_arg = true;
/* FALLTHROUGH */
- case DLK_OLD_STYLE_ARGS:
- if ((sc = dcs->d_scl) == NOSCL)
- sc = AUTO;
- else {
- lint_assert(sc == REG);
- sym->s_register = true;
- sc = AUTO;
- }
+ case DLK_OLD_STYLE_ARGS:;
+ lint_assert(dcs->d_scl == NOSCL || dcs->d_scl == REG);
+ sym->s_register = dcs->d_scl == REG;
+ sc = AUTO;
sym->s_def = DEF;
break;
case DLK_AUTO: