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; }