Module Name:    src
Committed By:   rillig
Date:           Fri Jun 30 21:39:54 UTC 2023

Modified Files:
        src/tests/usr.bin/xlint/lint1: decl_enum.c
        src/usr.bin/xlint/lint1: cgram.y debug.c decl.c externs1.h func.c lex.c
            lint1.h tree.c

Log Message:
lint: clean up names related to declaration levels

The previous prefix 'DK_' (declaration level kind) had a conflict with
the 'DK_' (designator kind) in init.c, so change the prefix to 'DLK_'.
The new name for dinfo_t is decl_level, which is more expressive.

No functional change.


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 src/tests/usr.bin/xlint/lint1/decl_enum.c
cvs rdiff -u -r1.442 -r1.443 src/usr.bin/xlint/lint1/cgram.y
cvs rdiff -u -r1.39 -r1.40 src/usr.bin/xlint/lint1/debug.c
cvs rdiff -u -r1.329 -r1.330 src/usr.bin/xlint/lint1/decl.c
cvs rdiff -u -r1.182 -r1.183 src/usr.bin/xlint/lint1/externs1.h
cvs rdiff -u -r1.159 -r1.160 src/usr.bin/xlint/lint1/func.c
cvs rdiff -u -r1.163 -r1.164 src/usr.bin/xlint/lint1/lex.c
cvs rdiff -u -r1.172 -r1.173 src/usr.bin/xlint/lint1/lint1.h
cvs rdiff -u -r1.537 -r1.538 src/usr.bin/xlint/lint1/tree.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/tests/usr.bin/xlint/lint1/decl_enum.c
diff -u src/tests/usr.bin/xlint/lint1/decl_enum.c:1.3 src/tests/usr.bin/xlint/lint1/decl_enum.c:1.4
--- src/tests/usr.bin/xlint/lint1/decl_enum.c:1.3	Sat Apr 16 09:22:25 2022
+++ src/tests/usr.bin/xlint/lint1/decl_enum.c	Fri Jun 30 21:39:54 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: decl_enum.c,v 1.3 2022/04/16 09:22:25 rillig Exp $	*/
+/*	$NetBSD: decl_enum.c,v 1.4 2023/06/30 21:39:54 rillig Exp $	*/
 # 3 "decl_enum.c"
 
 /*
@@ -39,7 +39,7 @@ enum outer {
 	 * enum constant would become the value of the last seen inner enum
 	 * constant.  This is because 'enumval' is a simple scalar variable,
 	 * not a stack.  If it should ever become necessary to account for
-	 * nested enum declarations, a field should be added in dinfo_t.
+	 * nested enum declarations, a field should be added in decl_level.
 	 */
 	o2 __attribute__((__deprecated__)),
 	o3 = i3

Index: src/usr.bin/xlint/lint1/cgram.y
diff -u src/usr.bin/xlint/lint1/cgram.y:1.442 src/usr.bin/xlint/lint1/cgram.y:1.443
--- src/usr.bin/xlint/lint1/cgram.y:1.442	Fri Jun 30 21:06:18 2023
+++ src/usr.bin/xlint/lint1/cgram.y	Fri Jun 30 21:39:54 2023
@@ -1,5 +1,5 @@
 %{
-/* $NetBSD: cgram.y,v 1.442 2023/06/30 21:06:18 rillig Exp $ */
+/* $NetBSD: cgram.y,v 1.443 2023/06/30 21:39:54 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.442 2023/06/30 21:06:18 rillig Exp $");
+__RCSID("$NetBSD: cgram.y,v 1.443 2023/06/30 21:39:54 rillig Exp $");
 #endif
 
 #include <limits.h>
@@ -897,9 +897,7 @@ struct_or_union_specifier:	/* C99 6.7.2.
 struct_or_union:		/* C99 6.7.2.1 */
 	  T_STRUCT_OR_UNION {
 		symtyp = FTAG;
-		begin_declaration_level($1 == STRUCT
-		    ? DK_STRUCT_MEMBER
-		    : DK_UNION_MEMBER);
+		begin_declaration_level($1 == STRUCT ? DLK_STRUCT : DLK_UNION);
 		dcs->d_offset_in_bits = 0;
 		dcs->d_sou_align_in_bits = CHAR_SIZE;
 		$$ = $1;
@@ -1047,7 +1045,7 @@ enum_specifier:			/* C99 6.7.2.2 */
 enum:				/* helper for C99 6.7.2.2 */
 	  T_ENUM {
 		symtyp = FTAG;
-		begin_declaration_level(DK_ENUM_CONSTANT);
+		begin_declaration_level(DLK_ENUM);
 	  }
 	;
 
@@ -1318,7 +1316,7 @@ param_list:
 id_list_lparen:
 	  T_LPAREN {
 		block_level++;
-		begin_declaration_level(DK_PROTO_ARG);
+		begin_declaration_level(DLK_PROTO_PARAMS);
 	  }
 	;
 
@@ -1370,7 +1368,7 @@ identifier_list:		/* C99 6.7.5 */
 /* XXX: C99 requires an additional specifier-qualifier-list. */
 type_name:			/* C99 6.7.6 */
 	  {
-		begin_declaration_level(DK_ABSTRACT);
+		begin_declaration_level(DLK_ABSTRACT);
 	  } abstract_declaration {
 		end_declaration_level();
 		$$ = $2->s_type;
@@ -1453,7 +1451,7 @@ abstract_decl_param_list:	/* specific to
 abstract_decl_lparen:		/* specific to lint */
 	  T_LPAREN {
 		block_level++;
-		begin_declaration_level(DK_PROTO_ARG);
+		begin_declaration_level(DLK_PROTO_PARAMS);
 	  }
 	;
 
@@ -1669,7 +1667,7 @@ compound_statement_lbrace:
 	  T_LBRACE {
 		block_level++;
 		mem_block_level++;
-		begin_declaration_level(DK_AUTO);
+		begin_declaration_level(DLK_AUTO);
 	  }
 	;
 
@@ -1819,7 +1817,7 @@ do_while_expr:			/* see C99 6.8.5 */
 
 for_start:			/* see C99 6.8.5 */
 	  T_FOR T_LPAREN {
-		begin_declaration_level(DK_AUTO);
+		begin_declaration_level(DLK_AUTO);
 		block_level++;
 	  }
 	;
@@ -1960,7 +1958,7 @@ function_definition:		/* C99 6.9.1 */
 		}
 		begin_function($1);
 		block_level++;
-		begin_declaration_level(DK_OLD_STYLE_ARG);
+		begin_declaration_level(DLK_OLD_STYLE_ARGS);
 		if (lwarn == LWARN_NONE)
 			$1->s_used = true;
 	  } arg_declaration_list_opt {

Index: src/usr.bin/xlint/lint1/debug.c
diff -u src/usr.bin/xlint/lint1/debug.c:1.39 src/usr.bin/xlint/lint1/debug.c:1.40
--- src/usr.bin/xlint/lint1/debug.c:1.39	Fri Jun 30 21:06:18 2023
+++ src/usr.bin/xlint/lint1/debug.c	Fri Jun 30 21:39:54 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: debug.c,v 1.39 2023/06/30 21:06:18 rillig Exp $ */
+/* $NetBSD: debug.c,v 1.40 2023/06/30 21:39:54 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.39 2023/06/30 21:06:18 rillig Exp $");
+__RCSID("$NetBSD: debug.c,v 1.40 2023/06/30 21:39:54 rillig Exp $");
 #endif
 
 #include <stdlib.h>
@@ -250,20 +250,20 @@ def_name(def_t def)
 }
 
 const char *
-declaration_kind_name(declaration_kind dk)
+decl_level_kind_name(decl_level_kind kind)
 {
 	static const char *const name[] = {
 		"extern",
-		"member-of-struct",
-		"member-of-union",
-		"enum-constant",
-		"old-style-function-argument",
-		"prototype-argument",
+		"struct",
+		"union",
+		"enum",
+		"old-style-function-arguments",
+		"prototype-parameters",
 		"auto",
 		"abstract",
 	};
 
-	return name[dk];
+	return name[kind];
 }
 
 const char *
@@ -395,62 +395,62 @@ debug_sym(const char *prefix, const sym_
 }
 
 void
-debug_dinfo(const dinfo_t *d) // NOLINT(misc-no-recursion)
+debug_dinfo(const decl_level *dl)
 {
 
 	debug_print_indent();
-	debug_printf("dinfo: %s", declaration_kind_name(d->d_kind));
-	if (d->d_scl != NOSCL)
-		debug_printf(" %s", scl_name(d->d_scl));
-	if (d->d_type != NULL) {
-		debug_printf(" '%s'", type_name(d->d_type));
-	} else {
-		if (d->d_abstract_type != NO_TSPEC)
-			debug_printf(" %s", tspec_name(d->d_abstract_type));
-		if (d->d_complex_mod != NO_TSPEC)
-			debug_printf(" %s", tspec_name(d->d_complex_mod));
-		if (d->d_sign_mod != NO_TSPEC)
-			debug_printf(" %s", tspec_name(d->d_sign_mod));
-		if (d->d_rank_mod != NO_TSPEC)
-			debug_printf(" %s", tspec_name(d->d_rank_mod));
+	debug_printf("decl_level: %s", decl_level_kind_name(dl->d_kind));
+	if (dl->d_scl != NOSCL)
+		debug_printf(" %s", scl_name(dl->d_scl));
+	if (dl->d_type != NULL)
+		debug_printf(" '%s'", type_name(dl->d_type));
+	else {
+		if (dl->d_abstract_type != NO_TSPEC)
+			debug_printf(" %s", tspec_name(dl->d_abstract_type));
+		if (dl->d_complex_mod != NO_TSPEC)
+			debug_printf(" %s", tspec_name(dl->d_complex_mod));
+		if (dl->d_sign_mod != NO_TSPEC)
+			debug_printf(" %s", tspec_name(dl->d_sign_mod));
+		if (dl->d_rank_mod != NO_TSPEC)
+			debug_printf(" %s", tspec_name(dl->d_rank_mod));
 	}
-	if (d->d_redeclared_symbol != NULL)
-		debug_sym(" redeclared=(", d->d_redeclared_symbol, ")");
-	if (d->d_offset_in_bits != 0)
-		debug_printf(" offset=%u", d->d_offset_in_bits);
-	if (d->d_sou_align_in_bits != 0)
-		debug_printf(" align=%u", (unsigned)d->d_sou_align_in_bits);
-
-	debug_word(d->d_const, "const");
-	debug_word(d->d_volatile, "volatile");
-	debug_word(d->d_inline, "inline");
-	debug_word(d->d_multiple_storage_classes, "multiple_storage_classes");
-	debug_word(d->d_invalid_type_combination, "invalid_type_combination");
-	debug_word(d->d_nonempty_decl, "nonempty_decl");
-	debug_word(d->d_vararg, "vararg");
-	debug_word(d->d_prototype, "prototype");
-	debug_word(d->d_no_type_specifier, "no_type_specifier");
-	debug_word(d->d_asm, "asm");
-	debug_word(d->d_packed, "packed");
-	debug_word(d->d_used, "used");
-
-	if (d->d_tag_type != NULL)
-		debug_printf(" tag_type='%s'", type_name(d->d_tag_type));
-	for (const sym_t *arg = d->d_func_args;
+	if (dl->d_redeclared_symbol != NULL)
+		debug_sym(" redeclared=(", dl->d_redeclared_symbol, ")");
+	if (dl->d_offset_in_bits != 0)
+		debug_printf(" offset=%u", dl->d_offset_in_bits);
+	if (dl->d_sou_align_in_bits != 0)
+		debug_printf(" align=%u", (unsigned)dl->d_sou_align_in_bits);
+
+	debug_word(dl->d_const, "const");
+	debug_word(dl->d_volatile, "volatile");
+	debug_word(dl->d_inline, "inline");
+	debug_word(dl->d_multiple_storage_classes, "multiple_storage_classes");
+	debug_word(dl->d_invalid_type_combination, "invalid_type_combination");
+	debug_word(dl->d_nonempty_decl, "nonempty_decl");
+	debug_word(dl->d_vararg, "vararg");
+	debug_word(dl->d_prototype, "prototype");
+	debug_word(dl->d_no_type_specifier, "no_type_specifier");
+	debug_word(dl->d_asm, "asm");
+	debug_word(dl->d_packed, "packed");
+	debug_word(dl->d_used, "used");
+
+	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, ")");
-	if (d->d_func_def_pos.p_file != NULL)
-		debug_printf(" func_def_pos=%s:%d:%d",
-		    d->d_func_def_pos.p_file, d->d_func_def_pos.p_line,
-		    d->d_func_def_pos.p_uniq);
-	for (const sym_t *sym = d->d_func_proto_syms;
+	if (dl->d_func_def_pos.p_file != NULL)
+		debug_printf(" func_def_pos=%s:%dl:%dl",
+		    dl->d_func_def_pos.p_file, dl->d_func_def_pos.p_line,
+		    dl->d_func_def_pos.p_uniq);
+	for (const sym_t *sym = dl->d_func_proto_syms;
 	     sym != NULL; sym = sym->s_next)
 		debug_sym(" func_proto_sym(", sym, ")");
 	debug_printf("\n");
 
-	if (d->d_enclosing != NULL) {
+	if (dl->d_enclosing != NULL) {
 		debug_indent_inc();
-		debug_dinfo(d->d_enclosing);
+		debug_dinfo(dl->d_enclosing);
 		debug_indent_dec();
 	}
 }

Index: src/usr.bin/xlint/lint1/decl.c
diff -u src/usr.bin/xlint/lint1/decl.c:1.329 src/usr.bin/xlint/lint1/decl.c:1.330
--- src/usr.bin/xlint/lint1/decl.c:1.329	Fri Jun 30 21:06:18 2023
+++ src/usr.bin/xlint/lint1/decl.c	Fri Jun 30 21:39:54 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: decl.c,v 1.329 2023/06/30 21:06:18 rillig Exp $ */
+/* $NetBSD: decl.c,v 1.330 2023/06/30 21:39:54 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.329 2023/06/30 21:06:18 rillig Exp $");
+__RCSID("$NetBSD: decl.c,v 1.330 2023/06/30 21:39:54 rillig Exp $");
 #endif
 
 #include <sys/param.h>
@@ -57,10 +57,11 @@ static	type_t	typetab[NTSPEC];
 int	enumval;
 
 /*
- * pointer to innermost element of a stack which contains information local
- * to nested declarations
+ * Points to the innermost element of a stack that contains information about
+ * nested declarations, such as struct declarations, function prototypes,
+ * local variables.
  */
-dinfo_t	*dcs;
+decl_level	*dcs;
 
 static	type_t	*typedef_error(type_t *, tspec_t);
 static	void	set_first_typedef(type_t *, sym_t *);
@@ -94,7 +95,7 @@ initdecl(void)
 
 	/* declaration stack */
 	dcs = xcalloc(1, sizeof(*dcs));
-	dcs->d_kind = DK_EXTERN;
+	dcs->d_kind = DLK_EXTERN;
 	dcs->d_last_dlsym = &dcs->d_first_dlsym;
 
 	if (!pflag) {
@@ -511,41 +512,41 @@ dcs_add_qualifier(tqual_t q)
 }
 
 void
-begin_declaration_level(declaration_kind dk)
+begin_declaration_level(decl_level_kind kind)
 {
 
-	dinfo_t *di = xcalloc(1, sizeof(*di));
-	di->d_enclosing = dcs;
-	di->d_kind = dk;
-	di->d_last_dlsym = &di->d_first_dlsym;
-	dcs = di;
-	debug_step("%s(%s)", __func__, declaration_kind_name(dk));
+	decl_level *dl = xcalloc(1, sizeof(*dl));
+	dl->d_enclosing = dcs;
+	dl->d_kind = kind;
+	dl->d_last_dlsym = &dl->d_first_dlsym;
+	dcs = dl;
+	debug_step("%s(%s)", __func__, decl_level_kind_name(kind));
 }
 
 void
 end_declaration_level(void)
 {
-	dinfo_t *di;
+	decl_level *dl;
 
-	debug_step("%s(%s)", __func__, declaration_kind_name(dcs->d_kind));
+	debug_step("%s(%s)", __func__, decl_level_kind_name(dcs->d_kind));
 
 	lint_assert(dcs->d_enclosing != NULL);
-	di = dcs;
-	dcs = di->d_enclosing;
+	dl = dcs;
+	dcs = dl->d_enclosing;
 
-	switch (di->d_kind) {
-	case DK_STRUCT_MEMBER:
-	case DK_UNION_MEMBER:
-	case DK_ENUM_CONSTANT:
+	switch (dl->d_kind) {
+	case DLK_STRUCT:
+	case DLK_UNION:
+	case DLK_ENUM:
 		/*
 		 * Symbols declared in (nested) structs or enums are part of
 		 * the next level (they are removed from the symbol table if
 		 * the symbols of the outer level are removed).
 		 */
-		if ((*dcs->d_last_dlsym = di->d_first_dlsym) != NULL)
-			dcs->d_last_dlsym = di->d_last_dlsym;
+		if ((*dcs->d_last_dlsym = dl->d_first_dlsym) != NULL)
+			dcs->d_last_dlsym = dl->d_last_dlsym;
 		break;
-	case DK_OLD_STYLE_ARG:
+	case DLK_OLD_STYLE_ARGS:
 		/*
 		 * All symbols in dcs->d_first_dlsym are introduced in
 		 * old-style argument declarations (it's not clean, but
@@ -553,12 +554,12 @@ end_declaration_level(void)
 		 * in an old-style argument identifier list or a new-style
 		 * parameter type list.
 		 */
-		if (di->d_first_dlsym != NULL) {
-			*di->d_last_dlsym = dcs->d_func_proto_syms;
-			dcs->d_func_proto_syms = di->d_first_dlsym;
+		if (dl->d_first_dlsym != NULL) {
+			*dl->d_last_dlsym = dcs->d_func_proto_syms;
+			dcs->d_func_proto_syms = dl->d_first_dlsym;
 		}
 		break;
-	case DK_ABSTRACT:	/* casts and sizeof */
+	case DLK_ABSTRACT:
 		/*
 		 * Append all symbols declared in the abstract declaration to
 		 * the list of symbols declared in the surrounding declaration
@@ -567,23 +568,23 @@ end_declaration_level(void)
 		 * XXX I'm not sure whether they should be removed from the
 		 * symbol table now or later.
 		 */
-		if ((*dcs->d_last_dlsym = di->d_first_dlsym) != NULL)
-			dcs->d_last_dlsym = di->d_last_dlsym;
+		if ((*dcs->d_last_dlsym = dl->d_first_dlsym) != NULL)
+			dcs->d_last_dlsym = dl->d_last_dlsym;
 		break;
-	case DK_AUTO:
-		check_usage(di);
+	case DLK_AUTO:
+		check_usage(dl);
 		/* FALLTHROUGH */
-	case DK_PROTO_ARG:
+	case DLK_PROTO_PARAMS:
 		/* usage of arguments will be checked by end_function() */
-		rmsyms(di->d_first_dlsym);
+		rmsyms(dl->d_first_dlsym);
 		break;
-	case DK_EXTERN:
+	case DLK_EXTERN:
 		/* there is nothing around an external declarations */
 		/* FALLTHROUGH */
 	default:
 		lint_assert(/*CONSTCOND*/false);
 	}
-	free(di);
+	free(dl);
 }
 
 /*
@@ -593,19 +594,19 @@ end_declaration_level(void)
  * compound statements, asm statements. For these compound statements, no
  * warnings about unused or uninitialized variables are printed.
  *
- * There is no need to clear d_asm in dinfo structs with context AUTO, because
+ * There is no need to clear d_asm in decl_level structs with context AUTO, as
  * these structs are freed at the end of the compound statement. But it must be
- * cleared in the outermost dinfo struct, which has context EXTERN. This could
- * be done in dcs_begin_type and would work for C90, but not for C99 or C++
- * (due to mixed statements and declarations). Thus, we clear it in
+ * cleared in the outermost decl_level struct, which has context EXTERN. This
+ * could be done in dcs_begin_type and would work for C90, but not for C99 or
+ * C++ (due to mixed statements and declarations). Thus, we clear it in
  * global_clean_up_decl.
  */
 void
 dcs_set_asm(void)
 {
 
-	for (dinfo_t *di = dcs; di != NULL; di = di->d_enclosing)
-		di->d_asm = true;
+	for (decl_level *dl = dcs; dl != NULL; dl = dl->d_enclosing)
+		dl->d_asm = true;
 }
 
 void
@@ -630,14 +631,14 @@ dcs_begin_type(void)
 static void
 dcs_adjust_storage_class(void)
 {
-	if (dcs->d_kind == DK_EXTERN) {
+	if (dcs->d_kind == DLK_EXTERN) {
 		if (dcs->d_scl == REG || dcs->d_scl == AUTO) {
 			/* illegal storage class */
 			error(8);
 			dcs->d_scl = NOSCL;
 		}
-	} else if (dcs->d_kind == DK_OLD_STYLE_ARG ||
-		   dcs->d_kind == DK_PROTO_ARG) {
+	} else if (dcs->d_kind == DLK_OLD_STYLE_ARGS ||
+		   dcs->d_kind == DLK_PROTO_PARAMS) {
 		if (dcs->d_scl != NOSCL && dcs->d_scl != REG) {
 			/* only register valid as formal parameter ... */
 			error(9);
@@ -907,14 +908,14 @@ check_type(sym_t *sym)
 			 * length_in_bits already does this.
 			 */
 		} else if (to == NO_TSPEC && t == VOID) {
-			if (dcs->d_kind == DK_PROTO_ARG) {
+			if (dcs->d_kind == DLK_PROTO_PARAMS) {
 				if (sym->s_scl != ABSTRACT) {
 					lint_assert(sym->s_name != unnamed);
 					/* void parameter '%s' cannot ... */
 					error(61, sym->s_name);
 					*tpp = gettyp(INT);
 				}
-			} else if (dcs->d_kind == DK_ABSTRACT) {
+			} else if (dcs->d_kind == DLK_ABSTRACT) {
 				/* ok */
 			} else if (sym->s_scl != TYPEDEF) {
 				/* void type for '%s' */
@@ -1023,7 +1024,7 @@ dcs_add_member(sym_t *mem)
 	type_t *tp = mem->s_type;
 
 	unsigned int union_offset = 0;
-	if (dcs->d_kind == DK_UNION_MEMBER) {
+	if (dcs->d_kind == DLK_UNION) {
 		union_offset = dcs->d_offset_in_bits;
 		dcs->d_offset_in_bits = 0;
 	}
@@ -1338,7 +1339,7 @@ add_function(sym_t *decl, sym_t *args)
 	 * 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 == DK_EXTERN &&
+	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 = args;
@@ -1407,7 +1408,7 @@ old_style_function(sym_t *decl, sym_t *a
 	 * Remember the list of parameters only if this really seems to be a
 	 * function definition.
 	 */
-	if (dcs->d_enclosing->d_kind == DK_EXTERN &&
+	if (dcs->d_enclosing->d_kind == DLK_EXTERN &&
 	    decl->s_type == dcs->d_enclosing->d_type) {
 		/*
 		 * Assume that this becomes a function definition. If not, it
@@ -1462,16 +1463,14 @@ declarator_name(sym_t *sym)
 	}
 
 	switch (dcs->d_kind) {
-	case DK_STRUCT_MEMBER:
-	case DK_UNION_MEMBER:
+	case DLK_STRUCT:
+	case DLK_UNION:
 		/* Set parent */
 		sym->u.s_member.sm_sou_type = dcs->d_tag_type->t_sou;
 		sym->s_def = DEF;
-		sc = dcs->d_kind == DK_STRUCT_MEMBER
-		    ? STRUCT_MEMBER
-		    : UNION_MEMBER;
+		sc = dcs->d_kind == DLK_STRUCT ? STRUCT_MEMBER : UNION_MEMBER;
 		break;
-	case DK_EXTERN:
+	case DLK_EXTERN:
 		/*
 		 * static and external symbols without "extern" are considered
 		 * to be tentatively defined, external symbols with "extern"
@@ -1491,10 +1490,10 @@ declarator_name(sym_t *sym)
 			sym->s_def = DECL;
 		}
 		break;
-	case DK_PROTO_ARG:
+	case DLK_PROTO_PARAMS:
 		sym->s_arg = true;
 		/* FALLTHROUGH */
-	case DK_OLD_STYLE_ARG:
+	case DLK_OLD_STYLE_ARGS:
 		if ((sc = dcs->d_scl) == NOSCL)
 			sc = AUTO;
 		else {
@@ -1504,7 +1503,7 @@ declarator_name(sym_t *sym)
 		}
 		sym->s_def = DEF;
 		break;
-	case DK_AUTO:
+	case DLK_AUTO:
 		if ((sc = dcs->d_scl) == NOSCL) {
 			/*
 			 * XXX somewhat ugly because we don't know whether this
@@ -1526,7 +1525,7 @@ declarator_name(sym_t *sym)
 		}
 		break;
 	default:
-		lint_assert(dcs->d_kind == DK_ABSTRACT);
+		lint_assert(dcs->d_kind == DLK_ABSTRACT);
 		/* try to continue after syntax errors */
 		sc = NOSCL;
 	}
@@ -1962,17 +1961,17 @@ void
 declare(sym_t *decl, bool has_initializer, sbuf_t *renaming)
 {
 
-	if (dcs->d_kind == DK_EXTERN)
+	if (dcs->d_kind == DLK_EXTERN)
 		declare_extern(decl, has_initializer, renaming);
-	else if (dcs->d_kind == DK_OLD_STYLE_ARG ||
-		 dcs->d_kind == DK_PROTO_ARG) {
+	else if (dcs->d_kind == DLK_OLD_STYLE_ARGS ||
+		 dcs->d_kind == DLK_PROTO_PARAMS) {
 		if (renaming != NULL) {
 			/* symbol renaming can't be used on function arguments */
 			error(310);
 		} else
 			(void)declare_argument(decl, has_initializer);
 	} else {
-		lint_assert(dcs->d_kind == DK_AUTO);
+		lint_assert(dcs->d_kind == DLK_AUTO);
 		if (renaming != NULL) {
 			/* symbol renaming can't be used on automatic variables */
 			error(311);
@@ -2759,7 +2758,7 @@ check_init(sym_t *sym)
 		return true;
 	}
 	if (sym->s_scl == EXTERN && sym->s_def == DECL) {
-		if (dcs->d_kind == DK_EXTERN) {
+		if (dcs->d_kind == DLK_EXTERN) {
 			/* cannot initialize extern declaration '%s' */
 			warning(26, sym->s_name);
 		} else {
@@ -2777,14 +2776,15 @@ sym_t *
 abstract_name(void)
 {
 
-	lint_assert(dcs->d_kind == DK_ABSTRACT || dcs->d_kind == DK_PROTO_ARG);
+	lint_assert(dcs->d_kind == DLK_ABSTRACT
+	    || dcs->d_kind == DLK_PROTO_PARAMS);
 
 	sym_t *sym = block_zero_alloc(sizeof(*sym));
 	sym->s_name = unnamed;
 	sym->s_def = DEF;
 	sym->s_scl = ABSTRACT;
 	sym->s_block_level = -1;
-	sym->s_arg = dcs->d_kind == DK_PROTO_ARG;
+	sym->s_arg = dcs->d_kind == DLK_PROTO_PARAMS;
 
 	/*
 	 * At this point, dcs->d_type contains only the basic type.  That
@@ -2879,16 +2879,16 @@ mark_as_used(sym_t *sym, bool fcall, boo
 
 /* Warns about variables and labels that are not used or only set. */
 void
-check_usage(dinfo_t *di)
+check_usage(decl_level *dl)
 {
 	/* for this warning LINTED has no effect */
 	int saved_lwarn = lwarn;
 	lwarn = LWARN_ALL;
 
 	debug_step("begin lwarn %d", lwarn);
-	for (sym_t *sym = di->d_first_dlsym;
+	for (sym_t *sym = dl->d_first_dlsym;
 	     sym != NULL; sym = sym->s_level_next)
-		check_usage_sym(di->d_asm, sym);
+		check_usage_sym(dl->d_asm, sym);
 	lwarn = saved_lwarn;
 	debug_step("end lwarn %d", lwarn);
 }
@@ -3020,7 +3020,7 @@ check_tag_usage(sym_t *sym)
 		return;
 
 	/* always complain about incomplete tags declared inside blocks */
-	if (!zflag || dcs->d_kind != DK_EXTERN)
+	if (!zflag || dcs->d_kind != DLK_EXTERN)
 		return;
 
 	switch (sym->s_type->t_tspec) {
@@ -3203,7 +3203,7 @@ to_int_constant(tnode_t *tn, bool requir
 	 * We don't free blocks that are inside casts because these
 	 * will be used later to match types.
 	 */
-	if (tn->tn_op != CON && dcs->d_kind != DK_ABSTRACT)
+	if (tn->tn_op != CON && dcs->d_kind != DLK_ABSTRACT)
 		expr_free_all();
 
 	tspec_t t = v->v_tspec;

Index: src/usr.bin/xlint/lint1/externs1.h
diff -u src/usr.bin/xlint/lint1/externs1.h:1.182 src/usr.bin/xlint/lint1/externs1.h:1.183
--- src/usr.bin/xlint/lint1/externs1.h:1.182	Fri Jun 30 21:06:18 2023
+++ src/usr.bin/xlint/lint1/externs1.h	Fri Jun 30 21:39:54 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: externs1.h,v 1.182 2023/06/30 21:06:18 rillig Exp $	*/
+/*	$NetBSD: externs1.h,v 1.183 2023/06/30 21:39:54 rillig Exp $	*/
 
 /*
  * Copyright (c) 1994, 1995 Jochen Pohl
@@ -118,11 +118,11 @@ void	expr_restore_memory(memory_pool);
  */
 
 #ifdef DEBUG
-const char *declaration_kind_name(declaration_kind);
+const char *decl_level_kind_name(decl_level_kind);
 const char *scl_name(scl_t);
 const char *symt_name(symt_t);
 const char *tqual_name(tqual_t);
-void	debug_dinfo(const dinfo_t *);
+void	debug_dinfo(const decl_level *);
 void	debug_node(const tnode_t *);
 void	debug_type(const type_t *);
 void	debug_sym(const char *, const sym_t *, const char *);
@@ -179,7 +179,7 @@ void	enable_queries(const char *);
 /*
  * decl.c
  */
-extern	dinfo_t	*dcs;
+extern	decl_level *dcs;
 extern	const char unnamed[];
 extern	int	enumval;
 
@@ -194,7 +194,7 @@ void	dcs_add_type(type_t *);
 void	dcs_add_qualifier(tqual_t);
 void	dcs_add_packed(void);
 void	dcs_set_used(void);
-void	begin_declaration_level(declaration_kind);
+void	begin_declaration_level(decl_level_kind);
 void	end_declaration_level(void);
 void	dcs_set_asm(void);
 void	dcs_begin_type(void);
@@ -235,7 +235,7 @@ sym_t	*declare_abstract_type(sym_t *);
 void	check_size(sym_t *);
 void	mark_as_set(sym_t *);
 void	mark_as_used(sym_t *, bool, bool);
-void	check_usage(dinfo_t *);
+void	check_usage(decl_level *);
 void	check_usage_sym(bool, sym_t *);
 void	check_global_symbols(void);
 void	print_previous_declaration(const sym_t *);

Index: src/usr.bin/xlint/lint1/func.c
diff -u src/usr.bin/xlint/lint1/func.c:1.159 src/usr.bin/xlint/lint1/func.c:1.160
--- src/usr.bin/xlint/lint1/func.c:1.159	Thu Jun 29 22:52:44 2023
+++ src/usr.bin/xlint/lint1/func.c	Fri Jun 30 21:39:54 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: func.c,v 1.159 2023/06/29 22:52:44 rillig Exp $	*/
+/*	$NetBSD: func.c,v 1.160 2023/06/30 21:39:54 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.159 2023/06/29 22:52:44 rillig Exp $");
+__RCSID("$NetBSD: func.c,v 1.160 2023/06/30 21:39:54 rillig Exp $");
 #endif
 
 #include <stdlib.h>
@@ -420,7 +420,7 @@ end_function(void)
 	 * the symbol table
 	 */
 	lint_assert(dcs->d_enclosing == NULL);
-	lint_assert(dcs->d_kind == DK_EXTERN);
+	lint_assert(dcs->d_kind == DLK_EXTERN);
 	rmsyms(dcs->d_func_proto_syms);
 
 	/* must be set on level 0 */
@@ -1144,7 +1144,7 @@ argsused(int n)
 	if (n == -1)
 		n = 0;
 
-	if (dcs->d_kind != DK_EXTERN) {
+	if (dcs->d_kind != DLK_EXTERN) {
 		/* comment ** %s ** must be outside function */
 		warning(280, "ARGSUSED");
 		return;
@@ -1170,7 +1170,7 @@ varargs(int n)
 	if (n == -1)
 		n = 0;
 
-	if (dcs->d_kind != DK_EXTERN) {
+	if (dcs->d_kind != DLK_EXTERN) {
 		/* comment ** %s ** must be outside function */
 		warning(280, "VARARGS");
 		return;
@@ -1196,7 +1196,7 @@ printflike(int n)
 	if (n == -1)
 		n = 0;
 
-	if (dcs->d_kind != DK_EXTERN) {
+	if (dcs->d_kind != DLK_EXTERN) {
 		/* comment ** %s ** must be outside function */
 		warning(280, "PRINTFLIKE");
 		return;
@@ -1222,7 +1222,7 @@ scanflike(int n)
 	if (n == -1)
 		n = 0;
 
-	if (dcs->d_kind != DK_EXTERN) {
+	if (dcs->d_kind != DLK_EXTERN) {
 		/* comment ** %s ** must be outside function */
 		warning(280, "SCANFLIKE");
 		return;
@@ -1277,7 +1277,7 @@ void
 lintlib(int n)
 {
 
-	if (dcs->d_kind != DK_EXTERN) {
+	if (dcs->d_kind != DLK_EXTERN) {
 		/* comment ** %s ** must be outside function */
 		warning(280, "LINTLIBRARY");
 		return;
@@ -1317,7 +1317,7 @@ void
 protolib(int n)
 {
 
-	if (dcs->d_kind != DK_EXTERN) {
+	if (dcs->d_kind != DLK_EXTERN) {
 		/* comment ** %s ** must be outside function */
 		warning(280, "PROTOLIB");
 		return;

Index: src/usr.bin/xlint/lint1/lex.c
diff -u src/usr.bin/xlint/lint1/lex.c:1.163 src/usr.bin/xlint/lint1/lex.c:1.164
--- src/usr.bin/xlint/lint1/lex.c:1.163	Fri Jun 30 19:43:00 2023
+++ src/usr.bin/xlint/lint1/lex.c	Fri Jun 30 21:39:54 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: lex.c,v 1.163 2023/06/30 19:43:00 rillig Exp $ */
+/* $NetBSD: lex.c,v 1.164 2023/06/30 21:39:54 rillig Exp $ */
 
 /*
  * Copyright (c) 1996 Christopher G. Demetriou.  All Rights Reserved.
@@ -38,7 +38,7 @@
 
 #include <sys/cdefs.h>
 #if defined(__RCSID)
-__RCSID("$NetBSD: lex.c,v 1.163 2023/06/30 19:43:00 rillig Exp $");
+__RCSID("$NetBSD: lex.c,v 1.164 2023/06/30 21:39:54 rillig Exp $");
 #endif
 
 #include <ctype.h>
@@ -1315,23 +1315,23 @@ getsym(sbuf_t *sb)
 	/* create a new symbol table entry */
 
 	/* labels must always be allocated at level 1 (outermost block) */
-	dinfo_t *di;
+	decl_level *dl;
 	if (symtyp == FLABEL) {
 		sym = level_zero_alloc(1, sizeof(*sym));
 		char *s = level_zero_alloc(1, sb->sb_len + 1);
 		(void)memcpy(s, sb->sb_name, sb->sb_len + 1);
 		sym->s_name = s;
 		sym->s_block_level = 1;
-		di = dcs;
-		while (di->d_enclosing != NULL &&
-		    di->d_enclosing->d_enclosing != NULL)
-			di = di->d_enclosing;
-		lint_assert(di->d_kind == DK_AUTO);
+		dl = dcs;
+		while (dl->d_enclosing != NULL &&
+		    dl->d_enclosing->d_enclosing != NULL)
+			dl = dl->d_enclosing;
+		lint_assert(dl->d_kind == DLK_AUTO);
 	} else {
 		sym = block_zero_alloc(sizeof(*sym));
 		sym->s_name = sb->sb_name;
 		sym->s_block_level = block_level;
-		di = dcs;
+		dl = dcs;
 	}
 
 	sym->s_def_pos = unique_curr_pos();
@@ -1343,8 +1343,8 @@ getsym(sbuf_t *sb)
 	if (!in_gcc_attribute) {
 		symtab_add(sym);
 
-		*di->d_last_dlsym = sym;
-		di->d_last_dlsym = &sym->s_level_next;
+		*dl->d_last_dlsym = sym;
+		dl->d_last_dlsym = &sym->s_level_next;
 	}
 
 	free(sb);

Index: src/usr.bin/xlint/lint1/lint1.h
diff -u src/usr.bin/xlint/lint1/lint1.h:1.172 src/usr.bin/xlint/lint1/lint1.h:1.173
--- src/usr.bin/xlint/lint1/lint1.h:1.172	Fri Jun 30 19:43:00 2023
+++ src/usr.bin/xlint/lint1/lint1.h	Fri Jun 30 21:39:54 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: lint1.h,v 1.172 2023/06/30 19:43:00 rillig Exp $ */
+/* $NetBSD: lint1.h,v 1.173 2023/06/30 21:39:54 rillig Exp $ */
 
 /*
  * Copyright (c) 1996 Christopher G. Demetriou.  All Rights Reserved.
@@ -324,18 +324,19 @@ struct array_size {
 	int dim;
 };
 
-typedef enum declaration_kind {
-	DK_EXTERN,		/* global variable or function */
-	DK_STRUCT_MEMBER,
-	DK_UNION_MEMBER,
-	DK_ENUM_CONSTANT,
-	DK_OLD_STYLE_ARG,	/* argument in an old-style function
+typedef enum decl_level_kind {
+	DLK_EXTERN,		/* global types, variables or functions */
+	DLK_STRUCT,		/* members */
+	DLK_UNION,		/* members */
+	DLK_ENUM,		/* constants */
+	DLK_OLD_STYLE_ARGS,	/* arguments in an old-style function
 				 * definition */
-	DK_PROTO_ARG,		/* argument in a prototype function
+	DLK_PROTO_PARAMS,	/* parameters in a prototype function
 				 * definition */
-	DK_AUTO,		/* local symbol */
-	DK_ABSTRACT		/* abstract declaration; type name */
-} declaration_kind;
+	DLK_AUTO,		/* local types or variables */
+	DLK_ABSTRACT		/* abstract (unnamed) declaration; type name;
+				 * used in casts and sizeof */
+} decl_level_kind;
 
 /*
  * A declaration level describes a struct, union, enum, block, argument
@@ -344,8 +345,8 @@ typedef enum declaration_kind {
  * For nested declarations, the global 'dcs' holds all information needed for
  * the current level, the outer levels are available via 'd_enclosing'.
  */
-typedef	struct dinfo {
-	declaration_kind d_kind;
+typedef	struct decl_level {
+	decl_level_kind d_kind;
 	tspec_t	d_abstract_type;/* VOID, BOOL, CHAR, INT or COMPLEX */
 	tspec_t	d_complex_mod;	/* FLOAT or DOUBLE */
 	tspec_t	d_sign_mod;	/* SIGNED or UNSIGN */
@@ -377,8 +378,8 @@ typedef	struct dinfo {
 	sym_t	**d_last_dlsym;	/* points to s_level_next in the last symbol
 				   declaration at this level */
 	sym_t	*d_func_proto_syms; /* symbols defined in prototype */
-	struct dinfo *d_enclosing; /* the enclosing declaration level */
-} dinfo_t;
+	struct decl_level *d_enclosing; /* the enclosing declaration level */
+} decl_level;
 
 /* One level of pointer indirection in declarators, including qualifiers. */
 typedef	struct qual_ptr {

Index: src/usr.bin/xlint/lint1/tree.c
diff -u src/usr.bin/xlint/lint1/tree.c:1.537 src/usr.bin/xlint/lint1/tree.c:1.538
--- src/usr.bin/xlint/lint1/tree.c:1.537	Fri Jun 30 21:06:18 2023
+++ src/usr.bin/xlint/lint1/tree.c	Fri Jun 30 21:39:54 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: tree.c,v 1.537 2023/06/30 21:06:18 rillig Exp $	*/
+/*	$NetBSD: tree.c,v 1.538 2023/06/30 21:39:54 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.537 2023/06/30 21:06:18 rillig Exp $");
+__RCSID("$NetBSD: tree.c,v 1.538 2023/06/30 21:39:54 rillig Exp $");
 #endif
 
 #include <float.h>
@@ -4399,7 +4399,7 @@ expr(tnode_t *tn, bool vctx, bool cond, 
 	}
 
 	/* expr() is also called in global initializations */
-	if (dcs->d_kind != DK_EXTERN && !is_do_while)
+	if (dcs->d_kind != DLK_EXTERN && !is_do_while)
 		check_statement_reachable();
 
 	check_expr_misc(tn, vctx, cond, !cond, false, false, false);
@@ -4512,8 +4512,8 @@ check_expr_load(const tnode_t *ln)
 static bool
 is_asm_around(void)
 {
-	for (dinfo_t *di = dcs; di != NULL; di = di->d_enclosing)
-		if (di->d_asm)
+	for (decl_level *dl = dcs; dl != NULL; dl = dl->d_enclosing)
+		if (dl->d_asm)
 			return true;
 	return false;
 }

Reply via email to