Module Name: src
Committed By: rillig
Date: Sat Jul 10 16:54:40 UTC 2021
Modified Files:
src/usr.bin/xlint/lint1: cgram.y
Log Message:
lint: split grammar rule clrtyp_declmods
By extracting clrtyp from that rule, clrtyp and deftyp pair up nicely in
most of the grammar rules. These two actions delimit the common part of
a declaration that declares multiple identifiers.
No functional change.
To generate a diff of this commit:
cvs rdiff -u -r1.292 -r1.293 src/usr.bin/xlint/lint1/cgram.y
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/usr.bin/xlint/lint1/cgram.y
diff -u src/usr.bin/xlint/lint1/cgram.y:1.292 src/usr.bin/xlint/lint1/cgram.y:1.293
--- src/usr.bin/xlint/lint1/cgram.y:1.292 Sat Jul 10 16:41:51 2021
+++ src/usr.bin/xlint/lint1/cgram.y Sat Jul 10 16:54:40 2021
@@ -1,5 +1,5 @@
%{
-/* $NetBSD: cgram.y,v 1.292 2021/07/10 16:41:51 rillig Exp $ */
+/* $NetBSD: cgram.y,v 1.293 2021/07/10 16:54:40 rillig Exp $ */
/*
* Copyright (c) 1996 Christopher G. Demetriou. All Rights Reserved.
@@ -35,7 +35,7 @@
#include <sys/cdefs.h>
#if defined(__RCSID) && !defined(lint)
-__RCSID("$NetBSD: cgram.y,v 1.292 2021/07/10 16:41:51 rillig Exp $");
+__RCSID("$NetBSD: cgram.y,v 1.293 2021/07/10 16:54:40 rillig Exp $");
#endif
#include <limits.h>
@@ -444,8 +444,8 @@ func_decl:
clrtyp deftyp notype_decl {
$$ = $3;
}
- | clrtyp_declmods deftyp notype_decl {
- $$ = $3;
+ | clrtyp declmods deftyp notype_decl {
+ $$ = $4;
}
| declaration_specifiers deftyp type_decl {
$$ = $3;
@@ -469,11 +469,11 @@ arg_declaration_list: /* C99 6.9.1p13 e
* needs other error handling.
*/
arg_declaration:
- clrtyp_declmods deftyp T_SEMI {
+ clrtyp declmods deftyp T_SEMI {
/* empty declaration */
warning(2);
}
- | clrtyp_declmods deftyp notype_init_decls T_SEMI
+ | clrtyp declmods deftyp notype_init_decls T_SEMI
| declaration_specifiers deftyp T_SEMI {
if (!dcs->d_nonempty_decl) {
/* empty declaration */
@@ -489,7 +489,7 @@ arg_declaration:
warning(3, type_name(dcs->d_type));
}
}
- | clrtyp_declmods error
+ | clrtyp declmods error
| declaration_specifiers error
;
@@ -499,7 +499,7 @@ declaration: /* C99 6.7 */
;
declaration_noerror: /* see C99 6.7 'declaration' */
- clrtyp_declmods deftyp T_SEMI {
+ clrtyp declmods deftyp T_SEMI {
if (dcs->d_scl == TYPEDEF) {
/* typedef declares no type name */
warning(72);
@@ -508,7 +508,7 @@ declaration_noerror: /* see C99 6.7 'de
warning(2);
}
}
- | clrtyp_declmods deftyp notype_init_decls T_SEMI
+ | clrtyp declmods deftyp notype_init_decls T_SEMI
| declaration_specifiers deftyp T_SEMI {
if (dcs->d_scl == TYPEDEF) {
/* typedef declares no type name */
@@ -537,8 +537,8 @@ declaration_specifiers: /* C99 6.7 */
clrtyp typespec {
add_type($2);
}
- | clrtyp_declmods typespec {
- add_type($2);
+ | clrtyp declmods typespec {
+ add_type($3);
}
| type_attribute declaration_specifiers
| declaration_specifiers declmod
@@ -547,9 +547,9 @@ declaration_specifiers: /* C99 6.7 */
}
;
-clrtyp_declmods:
- clrtyp qualifier_or_storage_class
- | clrtyp_declmods declmod
+declmods:
+ qualifier_or_storage_class
+ | declmods declmod
;
declmod:
@@ -1150,20 +1150,20 @@ parameter_type_list:
/* XXX: C99 6.7.5 defines the same name, but it looks completely different. */
parameter_declaration:
- clrtyp_declmods deftyp {
+ clrtyp declmods deftyp {
$$ = declare_argument(abstract_name(), false);
}
| declaration_specifiers deftyp {
$$ = declare_argument(abstract_name(), false);
}
- | clrtyp_declmods deftyp notype_param_decl {
- $$ = declare_argument($3, false);
+ | clrtyp declmods deftyp notype_param_decl {
+ $$ = declare_argument($4, false);
}
| declaration_specifiers deftyp type_param_decl {
$$ = declare_argument($3, false);
}
- | clrtyp_declmods deftyp abstract_declarator {
- $$ = declare_argument($3, false);
+ | clrtyp declmods deftyp abstract_declarator {
+ $$ = declare_argument($4, false);
}
| declaration_specifiers deftyp abstract_declarator {
$$ = declare_argument($3, false);