Module Name:    src
Committed By:   rillig
Date:           Sat Apr  2 14:28:31 UTC 2022

Modified Files:
        src/usr.bin/xlint/lint1: debug.c decl.c func.c lex.c lint1.h tree.c

Log Message:
lint: rename dinfo_t.d_next to d_enclosing

The name d_next gave the wrong impression that the declaration infos
would be independent of each other, but they are nested.

No functional change.


To generate a diff of this commit:
cvs rdiff -u -r1.10 -r1.11 src/usr.bin/xlint/lint1/debug.c
cvs rdiff -u -r1.258 -r1.259 src/usr.bin/xlint/lint1/decl.c
cvs rdiff -u -r1.128 -r1.129 src/usr.bin/xlint/lint1/func.c
cvs rdiff -u -r1.114 -r1.115 src/usr.bin/xlint/lint1/lex.c
cvs rdiff -u -r1.142 -r1.143 src/usr.bin/xlint/lint1/lint1.h
cvs rdiff -u -r1.415 -r1.416 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/usr.bin/xlint/lint1/debug.c
diff -u src/usr.bin/xlint/lint1/debug.c:1.10 src/usr.bin/xlint/lint1/debug.c:1.11
--- src/usr.bin/xlint/lint1/debug.c:1.10	Sat Apr  2 12:24:54 2022
+++ src/usr.bin/xlint/lint1/debug.c	Sat Apr  2 14:28:30 2022
@@ -1,4 +1,4 @@
-/* $NetBSD: debug.c,v 1.10 2022/04/02 12:24:54 rillig Exp $ */
+/* $NetBSD: debug.c,v 1.11 2022/04/02 14:28:30 rillig Exp $ */
 
 /*-
  * Copyright (c) 2021 The NetBSD Foundation, Inc.
@@ -35,7 +35,7 @@
 
 #include <sys/cdefs.h>
 #if defined(__RCSID) && !defined(lint)
-__RCSID("$NetBSD: debug.c,v 1.10 2022/04/02 12:24:54 rillig Exp $");
+__RCSID("$NetBSD: debug.c,v 1.11 2022/04/02 14:28:30 rillig Exp $");
 #endif
 
 #include <stdlib.h>
@@ -363,9 +363,9 @@ debug_dinfo(const dinfo_t *d) // NOLINT(
 		debug_sym("func_proto_sym(", sym, ")");
 	debug_printf("\n");
 
-	if (d->d_next != NULL) {
+	if (d->d_enclosing != NULL) {
 		debug_indent_inc();
-		debug_dinfo(d->d_next);
+		debug_dinfo(d->d_enclosing);
 		debug_indent_dec();
 	}
 }

Index: src/usr.bin/xlint/lint1/decl.c
diff -u src/usr.bin/xlint/lint1/decl.c:1.258 src/usr.bin/xlint/lint1/decl.c:1.259
--- src/usr.bin/xlint/lint1/decl.c:1.258	Sat Apr  2 12:24:54 2022
+++ src/usr.bin/xlint/lint1/decl.c	Sat Apr  2 14:28:30 2022
@@ -1,4 +1,4 @@
-/* $NetBSD: decl.c,v 1.258 2022/04/02 12:24:54 rillig Exp $ */
+/* $NetBSD: decl.c,v 1.259 2022/04/02 14:28:30 rillig Exp $ */
 
 /*
  * Copyright (c) 1996 Christopher G. Demetriou.  All Rights Reserved.
@@ -38,7 +38,7 @@
 
 #include <sys/cdefs.h>
 #if defined(__RCSID) && !defined(lint)
-__RCSID("$NetBSD: decl.c,v 1.258 2022/04/02 12:24:54 rillig Exp $");
+__RCSID("$NetBSD: decl.c,v 1.259 2022/04/02 14:28:30 rillig Exp $");
 #endif
 
 #include <sys/param.h>
@@ -599,7 +599,7 @@ begin_declaration_level(scl_t sc)
 
 	/* put a new element on the declaration stack */
 	di = xcalloc(1, sizeof(*di));
-	di->d_next = dcs;
+	di->d_enclosing = dcs;
 	dcs = di;
 	di->d_ctx = sc;
 	di->d_ldlsym = &di->d_dlsyms;
@@ -616,9 +616,9 @@ end_declaration_level(void)
 
 	debug_step("%s(%p %s)", __func__, dcs, scl_name(dcs->d_ctx));
 
-	lint_assert(dcs->d_next != NULL);
+	lint_assert(dcs->d_enclosing != NULL);
 	di = dcs;
-	dcs = di->d_next;
+	dcs = di->d_enclosing;
 	switch (di->d_ctx) {
 	case MOS:
 	case MOU:
@@ -696,7 +696,7 @@ setasm(void)
 {
 	dinfo_t	*di;
 
-	for (di = dcs; di != NULL; di = di->d_next)
+	for (di = dcs; di != NULL; di = di->d_enclosing)
 		di->d_asm = true;
 }
 
@@ -1393,17 +1393,17 @@ add_function(sym_t *decl, sym_t *args)
 	/*
 	 * The symbols are removed from the symbol table by
 	 * 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_next->d_func_proto_syms. Also a list of
-	 * the arguments (concatenated by s_next) is stored in
-	 * dcs->d_next->d_func_args. (dcs->d_next 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_next->d_ctx == EXTERN &&
-	    decl->s_type == dcs->d_next->d_type) {
-		dcs->d_next->d_func_proto_syms = dcs->d_dlsyms;
-		dcs->d_next->d_func_args = args;
+	 * 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
+	 * because *dcs is the declaration stack element created for the list
+	 * of params and is removed after add_function.)
+	 */
+	if (dcs->d_enclosing->d_ctx == EXTERN &&
+	    decl->s_type == dcs->d_enclosing->d_type) {
+		dcs->d_enclosing->d_func_proto_syms = dcs->d_dlsyms;
+		dcs->d_enclosing->d_func_args = args;
 	}
 
 	/*
@@ -1412,8 +1412,8 @@ add_function(sym_t *decl, sym_t *args)
 	 */
 	tpp = &decl->s_type;
 	if (*tpp == NULL)
-		decl->s_type = dcs->d_next->d_type;
-	while (*tpp != NULL && *tpp != dcs->d_next->d_type)
+		decl->s_type = dcs->d_enclosing->d_type;
+	while (*tpp != NULL && *tpp != dcs->d_enclosing->d_type)
 		/*
 		 * XXX: accessing INT->t_subt feels strange, even though it
 		 * may even be guaranteed to be NULL.
@@ -1428,7 +1428,7 @@ add_function(sym_t *decl, sym_t *args)
 
 	*tpp = tp = block_zero_alloc(sizeof(*tp));
 	tp->t_tspec = FUNC;
-	tp->t_subt = dcs->d_next->d_type;
+	tp->t_subt = dcs->d_enclosing->d_type;
 	if ((tp->t_proto = dcs->d_proto) != false)
 		tp->t_args = args;
 	tp->t_vararg = dcs->d_vararg;
@@ -1485,8 +1485,8 @@ old_style_function(sym_t *decl, sym_t *a
 	 * Remember list of parameters only if this really seems to be a
 	 * function definition.
 	 */
-	if (dcs->d_next->d_ctx == EXTERN &&
-	    decl->s_type == dcs->d_next->d_type) {
+	if (dcs->d_enclosing->d_ctx == EXTERN &&
+	    decl->s_type == dcs->d_enclosing->d_type) {
 		/*
 		 * We assume that this becomes a function definition. If
 		 * we are wrong, it's corrected in check_function_definition.
@@ -1670,7 +1670,7 @@ mktag(sym_t *tag, tspec_t kind, bool dec
 			tag = newtag(tag, scl, decl, semi);
 		} else {
 			/* a new tag, no empty declaration */
-			dcs->d_next->d_nonempty_decl = true;
+			dcs->d_enclosing->d_nonempty_decl = true;
 			if (scl == ENUM_TAG && !decl) {
 				if (!tflag && (sflag || pflag))
 					/* forward reference to enum type */
@@ -1693,7 +1693,7 @@ mktag(sym_t *tag, tspec_t kind, bool dec
 		tag->s_block_level = -1;
 		tag->s_type = tp = block_zero_alloc(sizeof(*tp));
 		tp->t_packed = dcs->d_packed;
-		dcs->d_next->d_nonempty_decl = true;
+		dcs->d_enclosing->d_nonempty_decl = true;
 	}
 
 	if (tp->t_tspec == NOTSPEC) {
@@ -1735,14 +1735,14 @@ newtag(sym_t *tag, scl_t scl, bool decl,
 				warning(45, storage_class_name(tag->s_scl),
 				    tag->s_name);
 			}
-			dcs->d_next->d_nonempty_decl = true;
+			dcs->d_enclosing->d_nonempty_decl = true;
 		} else if (decl) {
 			/* "struct a { ... } " */
 			if (hflag)
 				/* redefinition hides earlier one: %s */
 				warning(43, tag->s_name);
 			tag = pushdown(tag);
-			dcs->d_next->d_nonempty_decl = true;
+			dcs->d_enclosing->d_nonempty_decl = true;
 		} else if (tag->s_scl != scl) {
 			/* base type is really '%s %s' */
 			warning(45, storage_class_name(tag->s_scl),
@@ -1753,7 +1753,7 @@ newtag(sym_t *tag, scl_t scl, bool decl,
 				    tag->s_name);
 			}
 			tag = pushdown(tag);
-			dcs->d_next->d_nonempty_decl = true;
+			dcs->d_enclosing->d_nonempty_decl = true;
 		}
 	} else {
 		if (tag->s_scl != scl ||
@@ -1763,9 +1763,9 @@ newtag(sym_t *tag, scl_t scl, bool decl,
 			    tag->s_name, storage_class_name(scl));
 			print_previous_declaration(-1, tag);
 			tag = pushdown(tag);
-			dcs->d_next->d_nonempty_decl = true;
+			dcs->d_enclosing->d_nonempty_decl = true;
 		} else if (semi || decl) {
-			dcs->d_next->d_nonempty_decl = true;
+			dcs->d_enclosing->d_nonempty_decl = true;
 		}
 	}
 	return tag;
@@ -2908,7 +2908,7 @@ void
 global_clean_up(void)
 {
 
-	while (dcs->d_next != NULL)
+	while (dcs->d_enclosing != NULL)
 		end_declaration_level();
 
 	clean_up_after_error();
@@ -3180,7 +3180,7 @@ check_global_symbols(void)
 {
 	sym_t	*sym;
 
-	if (block_level != 0 || dcs->d_next != NULL)
+	if (block_level != 0 || dcs->d_enclosing != NULL)
 		norecover();
 
 	for (sym = dcs->d_dlsyms; sym != NULL; sym = sym->s_level_next) {

Index: src/usr.bin/xlint/lint1/func.c
diff -u src/usr.bin/xlint/lint1/func.c:1.128 src/usr.bin/xlint/lint1/func.c:1.129
--- src/usr.bin/xlint/lint1/func.c:1.128	Sun Feb 27 10:44:45 2022
+++ src/usr.bin/xlint/lint1/func.c	Sat Apr  2 14:28:30 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: func.c,v 1.128 2022/02/27 10:44:45 rillig Exp $	*/
+/*	$NetBSD: func.c,v 1.129 2022/04/02 14:28:30 rillig Exp $	*/
 
 /*
  * Copyright (c) 1994, 1995 Jochen Pohl
@@ -37,7 +37,7 @@
 
 #include <sys/cdefs.h>
 #if defined(__RCSID) && !defined(lint)
-__RCSID("$NetBSD: func.c,v 1.128 2022/02/27 10:44:45 rillig Exp $");
+__RCSID("$NetBSD: func.c,v 1.129 2022/04/02 14:28:30 rillig Exp $");
 #endif
 
 #include <stdlib.h>
@@ -415,14 +415,14 @@ funcend(void)
 	}
 
 	/* clean up after syntax errors, see test stmt_for.c. */
-	while (dcs->d_next != NULL)
-		dcs = dcs->d_next;
+	while (dcs->d_enclosing != NULL)
+		dcs = dcs->d_enclosing;
 
 	/*
 	 * remove all symbols declared during argument declaration from
 	 * the symbol table
 	 */
-	lint_assert(dcs->d_next == NULL);
+	lint_assert(dcs->d_enclosing == NULL);
 	lint_assert(dcs->d_ctx == EXTERN);
 	rmsyms(dcs->d_func_proto_syms);
 

Index: src/usr.bin/xlint/lint1/lex.c
diff -u src/usr.bin/xlint/lint1/lex.c:1.114 src/usr.bin/xlint/lint1/lex.c:1.115
--- src/usr.bin/xlint/lint1/lex.c:1.114	Sat Apr  2 12:24:55 2022
+++ src/usr.bin/xlint/lint1/lex.c	Sat Apr  2 14:28:30 2022
@@ -1,4 +1,4 @@
-/* $NetBSD: lex.c,v 1.114 2022/04/02 12:24:55 rillig Exp $ */
+/* $NetBSD: lex.c,v 1.115 2022/04/02 14:28:30 rillig Exp $ */
 
 /*
  * Copyright (c) 1996 Christopher G. Demetriou.  All Rights Reserved.
@@ -38,7 +38,7 @@
 
 #include <sys/cdefs.h>
 #if defined(__RCSID) && !defined(lint)
-__RCSID("$NetBSD: lex.c,v 1.114 2022/04/02 12:24:55 rillig Exp $");
+__RCSID("$NetBSD: lex.c,v 1.115 2022/04/02 14:28:30 rillig Exp $");
 #endif
 
 #include <ctype.h>
@@ -1414,8 +1414,9 @@ getsym(sbuf_t *sb)
 		sym->s_name = s;
 		sym->s_block_level = 1;
 		di = dcs;
-		while (di->d_next != NULL && di->d_next->d_next != NULL)
-			di = di->d_next;
+		while (di->d_enclosing != NULL &&
+		    di->d_enclosing->d_enclosing != NULL)
+			di = di->d_enclosing;
 		lint_assert(di->d_ctx == AUTO);
 	} else {
 		sym = block_zero_alloc(sizeof(*sym));

Index: src/usr.bin/xlint/lint1/lint1.h
diff -u src/usr.bin/xlint/lint1/lint1.h:1.142 src/usr.bin/xlint/lint1/lint1.h:1.143
--- src/usr.bin/xlint/lint1/lint1.h:1.142	Sun Feb 27 18:29:14 2022
+++ src/usr.bin/xlint/lint1/lint1.h	Sat Apr  2 14:28:30 2022
@@ -1,4 +1,4 @@
-/* $NetBSD: lint1.h,v 1.142 2022/02/27 18:29:14 rillig Exp $ */
+/* $NetBSD: lint1.h,v 1.143 2022/04/02 14:28:30 rillig Exp $ */
 
 /*
  * Copyright (c) 1996 Christopher G. Demetriou.  All Rights Reserved.
@@ -385,7 +385,7 @@ typedef	struct dinfo {
 	sym_t	**d_ldlsym;	/* 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_next;	/* next level */
+	struct dinfo *d_enclosing; /* the enclosing declaration level */
 } dinfo_t;
 
 /* One level of pointer indirection in declarators, including qualifiers. */

Index: src/usr.bin/xlint/lint1/tree.c
diff -u src/usr.bin/xlint/lint1/tree.c:1.415 src/usr.bin/xlint/lint1/tree.c:1.416
--- src/usr.bin/xlint/lint1/tree.c:1.415	Sat Apr  2 12:24:55 2022
+++ src/usr.bin/xlint/lint1/tree.c	Sat Apr  2 14:28:30 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: tree.c,v 1.415 2022/04/02 12:24:55 rillig Exp $	*/
+/*	$NetBSD: tree.c,v 1.416 2022/04/02 14:28:30 rillig Exp $	*/
 
 /*
  * Copyright (c) 1994, 1995 Jochen Pohl
@@ -37,7 +37,7 @@
 
 #include <sys/cdefs.h>
 #if defined(__RCSID) && !defined(lint)
-__RCSID("$NetBSD: tree.c,v 1.415 2022/04/02 12:24:55 rillig Exp $");
+__RCSID("$NetBSD: tree.c,v 1.416 2022/04/02 14:28:30 rillig Exp $");
 #endif
 
 #include <float.h>
@@ -4028,7 +4028,7 @@ check_expr_side_effect(const tnode_t *ln
 		 * compound statements we are in. If not, we don't
 		 * print a warning.
 		 */
-		for (di = dcs; di != NULL; di = di->d_next) {
+		for (di = dcs; di != NULL; di = di->d_enclosing) {
 			if (di->d_asm)
 				break;
 		}

Reply via email to