Module Name:    src
Committed By:   rillig
Date:           Sat Feb  3 12:57:12 UTC 2024

Modified Files:
        src/usr.bin/xlint/lint1: ckbool.c ckgetopt.c decl.c emit1.c externs1.h
            func.c lex.c main1.c

Log Message:
lint: clean up comments, reduce scope of variables


To generate a diff of this commit:
cvs rdiff -u -r1.28 -r1.29 src/usr.bin/xlint/lint1/ckbool.c
cvs rdiff -u -r1.20 -r1.21 src/usr.bin/xlint/lint1/ckgetopt.c
cvs rdiff -u -r1.390 -r1.391 src/usr.bin/xlint/lint1/decl.c
cvs rdiff -u -r1.83 -r1.84 src/usr.bin/xlint/lint1/emit1.c
cvs rdiff -u -r1.213 -r1.214 src/usr.bin/xlint/lint1/externs1.h
cvs rdiff -u -r1.179 -r1.180 src/usr.bin/xlint/lint1/func.c
cvs rdiff -u -r1.209 -r1.210 src/usr.bin/xlint/lint1/lex.c
cvs rdiff -u -r1.80 -r1.81 src/usr.bin/xlint/lint1/main1.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/ckbool.c
diff -u src/usr.bin/xlint/lint1/ckbool.c:1.28 src/usr.bin/xlint/lint1/ckbool.c:1.29
--- src/usr.bin/xlint/lint1/ckbool.c:1.28	Sat Dec 30 15:37:27 2023
+++ src/usr.bin/xlint/lint1/ckbool.c	Sat Feb  3 12:57:12 2024
@@ -1,4 +1,4 @@
-/* $NetBSD: ckbool.c,v 1.28 2023/12/30 15:37:27 rillig Exp $ */
+/* $NetBSD: ckbool.c,v 1.29 2024/02/03 12:57:12 rillig Exp $ */
 
 /*-
  * Copyright (c) 2021 The NetBSD Foundation, Inc.
@@ -36,7 +36,7 @@
 #include <sys/cdefs.h>
 
 #if defined(__RCSID)
-__RCSID("$NetBSD: ckbool.c,v 1.28 2023/12/30 15:37:27 rillig Exp $");
+__RCSID("$NetBSD: ckbool.c,v 1.29 2024/02/03 12:57:12 rillig Exp $");
 #endif
 
 #include <string.h>
@@ -46,7 +46,7 @@ __RCSID("$NetBSD: ckbool.c,v 1.28 2023/1
 
 /*
  * The option -T treats _Bool as incompatible with all other scalar types.
- * See d_c99_bool_strict.c for the exact rules and for examples.
+ * See d_c99_bool_strict.c for the detailed rules and for examples.
  */
 
 
@@ -113,16 +113,15 @@ typeok_strict_bool_binary_compatible(op_
 	if (is_typeok_strict_bool_binary(op, ln, lt, rn, rt))
 		return true;
 
-	if (op == FARG) {
+	if (op == FARG)
 		/* parameter %d expects '%s', gets passed '%s' */
 		error(334, arg, tspec_name(lt), tspec_name(rt));
-	} else if (op == RETURN) {
+	else if (op == RETURN)
 		/* function has return type '%s' but returns '%s' */
 		error(211, tspec_name(lt), tspec_name(rt));
-	} else {
+	else
 		/* operands of '%s' have incompatible types '%s' and '%s' */
 		error(107, op_name(op), tspec_name(lt), tspec_name(rt));
-	}
 
 	return false;
 }
@@ -136,16 +135,12 @@ typeok_scalar_strict_bool(op_t op, const
 			  const tnode_t *ln,
 			  const tnode_t *rn)
 {
-	tspec_t lt, rt;
-
 	ln = before_conversion(ln);
-	lt = ln->tn_type->t_tspec;
-
+	tspec_t lt = ln->tn_type->t_tspec;
+	tspec_t rt = NO_TSPEC;
 	if (rn != NULL) {
 		rn = before_conversion(rn);
 		rt = rn->tn_type->t_tspec;
-	} else {
-		rt = NO_TSPEC;
 	}
 
 	if (rn != NULL &&
@@ -202,26 +197,16 @@ typeok_scalar_strict_bool(op_t op, const
 	return true;
 }
 
-/*
- * See if the node is valid as operand of an operator that compares its
- * operand with 0.
- */
 bool
 is_typeok_bool_compares_with_zero(const tnode_t *tn)
 {
-	tspec_t t;
-
 	while (tn->tn_op == COMMA)
 		tn = tn->tn_right;
 	tn = before_conversion(tn);
-	t = tn->tn_type->t_tspec;
-
-	if (t == BOOL)
-		return true;
 
-	if (tn->tn_sys && is_scalar(t))
-		return true;
-	return tn->tn_op == BITAND;
+	return tn->tn_type->t_tspec == BOOL
+	    || tn->tn_op == BITAND
+	    || (tn->tn_sys && is_scalar(tn->tn_type->t_tspec));
 }
 
 bool

Index: src/usr.bin/xlint/lint1/ckgetopt.c
diff -u src/usr.bin/xlint/lint1/ckgetopt.c:1.20 src/usr.bin/xlint/lint1/ckgetopt.c:1.21
--- src/usr.bin/xlint/lint1/ckgetopt.c:1.20	Thu Feb  1 18:37:06 2024
+++ src/usr.bin/xlint/lint1/ckgetopt.c	Sat Feb  3 12:57:12 2024
@@ -1,4 +1,4 @@
-/* $NetBSD: ckgetopt.c,v 1.20 2024/02/01 18:37:06 rillig Exp $ */
+/* $NetBSD: ckgetopt.c,v 1.21 2024/02/03 12:57:12 rillig Exp $ */
 
 /*-
  * Copyright (c) 2021 The NetBSD Foundation, Inc.
@@ -35,7 +35,7 @@
 
 #include <sys/cdefs.h>
 #if defined(__RCSID)
-__RCSID("$NetBSD: ckgetopt.c,v 1.20 2024/02/01 18:37:06 rillig Exp $");
+__RCSID("$NetBSD: ckgetopt.c,v 1.21 2024/02/03 12:57:12 rillig Exp $");
 #endif
 
 #include <stdbool.h>
@@ -109,31 +109,22 @@ is_getopt_condition(const tnode_t *tn, c
 static void
 check_unlisted_option(char opt)
 {
-	char *optptr;
-
-	lint_assert(ck.options != NULL);
-
 	if (opt == ':' && ck.options[0] != ':')
 		goto warn;
 
-	optptr = strchr(ck.options, opt);
+	char *optptr = strchr(ck.options, opt);
 	if (optptr != NULL)
 		*optptr = ' ';
-	else if (opt != '?') {
+	else if (opt != '?')
 	warn:
 		/* option '%c' should be listed in the options string */
 		warning(339, opt);
-	}
 }
 
 static void
 check_unhandled_option(void)
 {
-	const char *opt;
-
-	lint_assert(ck.options != NULL);
-
-	for (opt = ck.options; *opt != '\0'; opt++) {
+	for (const char *opt = ck.options; *opt != '\0'; opt++) {
 		if (*opt == ' ' || *opt == ':')
 			continue;
 

Index: src/usr.bin/xlint/lint1/decl.c
diff -u src/usr.bin/xlint/lint1/decl.c:1.390 src/usr.bin/xlint/lint1/decl.c:1.391
--- src/usr.bin/xlint/lint1/decl.c:1.390	Tue Jan 23 20:03:42 2024
+++ src/usr.bin/xlint/lint1/decl.c	Sat Feb  3 12:57:12 2024
@@ -1,4 +1,4 @@
-/* $NetBSD: decl.c,v 1.390 2024/01/23 20:03:42 rillig Exp $ */
+/* $NetBSD: decl.c,v 1.391 2024/02/03 12:57:12 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.390 2024/01/23 20:03:42 rillig Exp $");
+__RCSID("$NetBSD: decl.c,v 1.391 2024/02/03 12:57:12 rillig Exp $");
 #endif
 
 #include <sys/param.h>
@@ -64,11 +64,8 @@ int enumval;
 decl_level *dcs;
 
 
-/*
- * initializes all global vars used in declarations
- */
 void
-initdecl(void)
+init_decl(void)
 {
 
 	/* declaration stack */

Index: src/usr.bin/xlint/lint1/emit1.c
diff -u src/usr.bin/xlint/lint1/emit1.c:1.83 src/usr.bin/xlint/lint1/emit1.c:1.84
--- src/usr.bin/xlint/lint1/emit1.c:1.83	Thu Feb  1 18:37:06 2024
+++ src/usr.bin/xlint/lint1/emit1.c	Sat Feb  3 12:57:12 2024
@@ -1,4 +1,4 @@
-/* $NetBSD: emit1.c,v 1.83 2024/02/01 18:37:06 rillig Exp $ */
+/* $NetBSD: emit1.c,v 1.84 2024/02/03 12:57:12 rillig Exp $ */
 
 /*
  * Copyright (c) 1996 Christopher G. Demetriou.  All Rights Reserved.
@@ -38,7 +38,7 @@
 
 #include <sys/cdefs.h>
 #if defined(__RCSID)
-__RCSID("$NetBSD: emit1.c,v 1.83 2024/02/01 18:37:06 rillig Exp $");
+__RCSID("$NetBSD: emit1.c,v 1.84 2024/02/03 12:57:12 rillig Exp $");
 #endif
 
 #include "lint1.h"
@@ -234,7 +234,6 @@ outfdef(const sym_t *fsym, const pos_t *
 	const sym_t *args)
 {
 	int narg;
-	const sym_t *arg;
 
 	if (posp->p_file == csrc_pos.p_file) {
 		outint(posp->p_line);
@@ -298,11 +297,11 @@ outfdef(const sym_t *fsym, const pos_t *
 	/* parameter types and return value */
 	if (osdef) {
 		narg = 0;
-		for (arg = args; arg != NULL; arg = arg->s_next)
+		for (const sym_t *arg = args; arg != NULL; arg = arg->s_next)
 			narg++;
 		outchar('f');
 		outint(narg);
-		for (arg = args; arg != NULL; arg = arg->s_next)
+		for (const sym_t *arg = args; arg != NULL; arg = arg->s_next)
 			outtype(arg->s_type);
 		outtype(fsym->s_type->t_subt);
 	} else {
@@ -323,8 +322,7 @@ void
 outcall(const tnode_t *tn, bool retval_used, bool retval_discarded)
 {
 	tnode_t *args, *arg;
-	int narg, n, i;
-	tspec_t t;
+	int narg, i;
 
 	outint(csrc_pos.p_line);
 	outchar('c');		/* function call */
@@ -341,13 +339,14 @@ outcall(const tnode_t *tn, bool retval_u
 	for (arg = args; arg != NULL; arg = tn_ck_right(arg))
 		narg++;
 	/* information about arguments */
-	for (n = 1; n <= narg; n++) {
+	for (int n = 1; n <= narg; n++) {
 		/* the last argument is the top one in the tree */
 		for (i = narg, arg = args; i > n; i--, arg = arg->tn_right)
 			continue;
 		arg = arg->tn_left;
 		if (arg->tn_op == CON) {
-			if (is_integer(t = arg->tn_type->t_tspec)) {
+			tspec_t t = arg->tn_type->t_tspec;
+			if (is_integer(t)) {
 				/*
 				 * XXX it would probably be better to
 				 * explicitly test the sign
@@ -382,7 +381,7 @@ outcall(const tnode_t *tn, bool retval_u
 	/* types of arguments */
 	outchar('f');
 	outint(narg);
-	for (n = 1; n <= narg; n++) {
+	for (int n = 1; n <= narg; n++) {
 		/* the last argument is the top one in the tree */
 		for (i = narg, arg = args; i > n; i--, arg = arg->tn_right)
 			continue;

Index: src/usr.bin/xlint/lint1/externs1.h
diff -u src/usr.bin/xlint/lint1/externs1.h:1.213 src/usr.bin/xlint/lint1/externs1.h:1.214
--- src/usr.bin/xlint/lint1/externs1.h:1.213	Thu Feb  1 18:37:06 2024
+++ src/usr.bin/xlint/lint1/externs1.h	Sat Feb  3 12:57:12 2024
@@ -1,4 +1,4 @@
-/*	$NetBSD: externs1.h,v 1.213 2024/02/01 18:37:06 rillig Exp $	*/
+/*	$NetBSD: externs1.h,v 1.214 2024/02/03 12:57:12 rillig Exp $	*/
 
 /*
  * Copyright (c) 1994, 1995 Jochen Pohl
@@ -83,7 +83,7 @@ extern bool in_system_header;
 extern symbol_kind sym_kind;
 extern FILE *yyin;
 
-void initscan(void);
+void init_lex(void);
 int64_t convert_integer(int64_t, tspec_t, unsigned int);
 void clear_warn_flags(void);
 sym_t *getsym(sbuf_t *);
@@ -205,7 +205,7 @@ extern decl_level *dcs;
 extern const char unnamed[];
 extern int enumval;
 
-void initdecl(void);
+void init_decl(void);
 type_t *gettyp(tspec_t);
 type_t *block_dup_type(const type_t *);
 type_t *expr_dup_type(const type_t *);

Index: src/usr.bin/xlint/lint1/func.c
diff -u src/usr.bin/xlint/lint1/func.c:1.179 src/usr.bin/xlint/lint1/func.c:1.180
--- src/usr.bin/xlint/lint1/func.c:1.179	Sat Jan  6 15:05:24 2024
+++ src/usr.bin/xlint/lint1/func.c	Sat Feb  3 12:57:12 2024
@@ -1,4 +1,4 @@
-/*	$NetBSD: func.c,v 1.179 2024/01/06 15:05:24 rillig Exp $	*/
+/*	$NetBSD: func.c,v 1.180 2024/02/03 12:57:12 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.179 2024/01/06 15:05:24 rillig Exp $");
+__RCSID("$NetBSD: func.c,v 1.180 2024/02/03 12:57:12 rillig Exp $");
 #endif
 
 #include <stdlib.h>
@@ -156,17 +156,13 @@ begin_control_statement(control_statemen
 void
 end_control_statement(control_statement_kind kind)
 {
-	control_statement *cs;
-	case_label_t *cl, *next;
-
-	lint_assert(cstmt != NULL);
-
 	while (cstmt->c_kind != kind)
 		cstmt = cstmt->c_surrounding;
 
-	cs = cstmt;
+	control_statement *cs = cstmt;
 	cstmt = cs->c_surrounding;
 
+	case_label_t *cl, *next;
 	for (cl = cs->c_case_labels; cl != NULL; cl = next) {
 		next = cl->cl_next;
 		free(cl);
@@ -212,17 +208,13 @@ check_statement_reachable(void)
 void
 begin_function(sym_t *fsym)
 {
-	int n;
-	bool dowarn;
-	sym_t *sym, *rdsym;
-
 	funcsym = fsym;
 
 	/*
 	 * Put all symbols declared in the parameter list back to the symbol
 	 * table.
 	 */
-	for (sym = dcs->d_func_proto_syms; sym != NULL;
+	for (sym_t *sym = dcs->d_func_proto_syms; sym != NULL;
 	    sym = sym->s_level_next) {
 		if (sym->s_block_level != -1) {
 			lint_assert(sym->s_block_level == 1);
@@ -265,7 +257,7 @@ begin_function(sym_t *fsym)
 	 * Parameters in new-style function declarations need a name. ('void'
 	 * is already removed from the list of parameters.)
 	 */
-	n = 1;
+	int n = 1;
 	for (const sym_t *param = fsym->s_type->t_params;
 	    param != NULL; param = param->s_next) {
 		if (param->s_scl == ABSTRACT) {
@@ -284,9 +276,10 @@ begin_function(sym_t *fsym)
 	 */
 	dcs->d_func_def_pos = fsym->s_def_pos;
 
-	if ((rdsym = dcs->d_redeclared_symbol) != NULL) {
-
-		if (!check_redeclaration(fsym, (dowarn = false, &dowarn))) {
+	sym_t *rdsym = dcs->d_redeclared_symbol;
+	if (rdsym != NULL) {
+		bool dowarn = false;
+		if (!check_redeclaration(fsym, &dowarn)) {
 
 			/*
 			 * Print nothing if the newly defined function is
@@ -354,23 +347,14 @@ check_missing_return_value(void)
 	warning(217, funcsym->s_name);
 }
 
-/*
- * Called at the end of a function definition.
- */
 void
 end_function(void)
 {
-
 	if (reached) {
 		cstmt->c_had_return_noval = true;
 		check_missing_return_value();
 	}
 
-	/*
-	 * This warning is printed only if the return value was implicitly
-	 * declared to be int. Otherwise, the wrong return statement has
-	 * already printed a warning.
-	 */
 	if (cstmt->c_had_return_noval && cstmt->c_had_return_value &&
 	    funcsym->s_return_type_implicit_int)
 		/* function '%s' has 'return expr' and 'return' */
@@ -383,27 +367,17 @@ end_function(void)
 	    param != NULL && n != 0; param = param->s_next, n--)
 		check_usage_sym(dcs->d_asm, param);
 
-	/*
-	 * Write the information about the function definition to the output
-	 * file. Inline functions explicitly declared extern are written as
-	 * declarations only.
-	 */
-	if (dcs->d_scl == EXTERN && funcsym->s_inline) {
+	if (dcs->d_scl == EXTERN && funcsym->s_inline)
 		outsym(funcsym, funcsym->s_scl, DECL);
-	} else {
+	else
 		outfdef(funcsym, &dcs->d_func_def_pos,
 		    cstmt->c_had_return_value, funcsym->s_osdef,
 		    dcs->d_func_params);
-	}
 
 	/* clean up after syntax errors, see test stmt_for.c. */
 	while (dcs->d_enclosing != NULL)
 		dcs = dcs->d_enclosing;
 
-	/*
-	 * Remove all symbols declared during the parameter declaration from
-	 * the symbol table.
-	 */
 	lint_assert(dcs->d_enclosing == NULL);
 	lint_assert(dcs->d_kind == DLK_EXTERN);
 	symtab_remove_level(dcs->d_func_proto_syms);
@@ -418,12 +392,11 @@ void
 named_label(sym_t *sym)
 {
 
-	if (sym->s_set) {
+	if (sym->s_set)
 		/* label '%s' redefined */
 		error(194, sym->s_name);
-	} else {
+	else
 		mark_as_set(sym);
-	}
 
 	/* XXX: Assuming that each label is reachable is wrong. */
 	set_reached(true);
@@ -432,7 +405,6 @@ named_label(sym_t *sym)
 static void
 check_case_label_bitand(const tnode_t *case_expr, const tnode_t *switch_expr)
 {
-
 	if (switch_expr->tn_op != BITAND ||
 	    switch_expr->tn_right->tn_op != CON)
 		return;
@@ -441,10 +413,9 @@ check_case_label_bitand(const tnode_t *c
 	uint64_t case_value = (uint64_t)case_expr->tn_val.u.integer;
 	uint64_t mask = (uint64_t)switch_expr->tn_right->tn_val.u.integer;
 
-	if ((case_value & ~mask) != 0) {
+	if ((case_value & ~mask) != 0)
 		/* statement not reached */
 		warning(193);
-	}
 }
 
 static void
@@ -466,12 +437,11 @@ check_case_label_enum(const tnode_t *tn,
 }
 
 static void
-check_case_label(tnode_t *tn, control_statement *cs)
+check_case_label(tnode_t *tn)
 {
-	case_label_t *cl;
-	val_t *v;
-	val_t nv;
-	tspec_t t;
+	control_statement *cs;
+	for (cs = cstmt; cs != NULL && !cs->c_switch; cs = cs->c_surrounding)
+		continue;
 
 	if (cs == NULL) {
 		/* case not in switch */
@@ -505,38 +475,34 @@ check_case_label(tnode_t *tn, control_st
 			warning(220);
 	}
 
-	t = tn->tn_type->t_tspec;
-	if (t == LONG || t == ULONG ||
-	    t == LLONG || t == ULLONG) {
-		if (!allow_c90)
-			/* case label must be of type 'int' in traditional C */
-			warning(203);
-	}
+	tspec_t t = tn->tn_type->t_tspec;
+	if ((t == LONG || t == ULONG || t == LLONG || t == ULLONG)
+	    && !allow_c90)
+		/* case label must be of type 'int' in traditional C */
+		warning(203);
 
-	/*
-	 * get the value of the expression and convert it to the type of the
-	 * switch expression
-	 */
-	v = integer_constant(tn, true);
+	val_t *v = integer_constant(tn, true);
+	val_t nv;
 	(void)memset(&nv, 0, sizeof(nv));
 	convert_constant(CASE, 0, cs->c_switch_type, &nv, v);
 	free(v);
 
 	/* look if we had this value already */
+	case_label_t *cl;
 	for (cl = cs->c_case_labels; cl != NULL; cl = cl->cl_next) {
 		if (cl->cl_val.u.integer == nv.u.integer)
 			break;
 	}
-	if (cl != NULL && is_uinteger(nv.v_tspec)) {
+	if (cl != NULL && is_uinteger(nv.v_tspec))
 		/* duplicate case '%lu' in switch */
 		error(200, (unsigned long)nv.u.integer);
-	} else if (cl != NULL) {
+	else if (cl != NULL)
 		/* duplicate case '%ld' in switch */
 		error(199, (long)nv.u.integer);
-	} else {
+	else {
 		check_getopt_case_label(nv.u.integer);
 
-		/* append the value to the list of case values */
+		/* Prepend the value to the list of case values. */
 		cl = xcalloc(1, sizeof(*cl));
 		cl->cl_val = nv;
 		cl->cl_next = cs->c_case_labels;
@@ -547,35 +513,26 @@ check_case_label(tnode_t *tn, control_st
 void
 case_label(tnode_t *tn)
 {
-	control_statement *cs;
-
-	/* find the innermost switch statement */
-	for (cs = cstmt; cs != NULL && !cs->c_switch; cs = cs->c_surrounding)
-		continue;
-
-	check_case_label(tn, cs);
-
+	check_case_label(tn);
 	expr_free_all();
-
 	set_reached(true);
 }
 
 void
 default_label(void)
 {
-	control_statement *cs;
-
 	/* find the innermost switch statement */
+	control_statement *cs;
 	for (cs = cstmt; cs != NULL && !cs->c_switch; cs = cs->c_surrounding)
 		continue;
 
-	if (cs == NULL) {
+	if (cs == NULL)
 		/* default outside switch */
 		error(201);
-	} else if (cs->c_default) {
+	else if (cs->c_default)
 		/* duplicate default in switch */
 		error(202);
-	} else {
+	else {
 		if (reached && !suppress_fallthrough) {
 			if (hflag)
 				/* fallthrough on default statement */
@@ -590,7 +547,6 @@ default_label(void)
 static tnode_t *
 check_controlling_expression(tnode_t *tn)
 {
-
 	tn = cconv(tn);
 	if (tn != NULL)
 		tn = promote(NOOP, false, tn);
@@ -616,7 +572,6 @@ check_controlling_expression(tnode_t *tn
 void
 stmt_if_expr(tnode_t *tn)
 {
-
 	if (tn != NULL)
 		tn = check_controlling_expression(tn);
 	if (tn != NULL)
@@ -634,7 +589,6 @@ stmt_if_expr(tnode_t *tn)
 void
 stmt_if_then_stmt(void)
 {
-
 	cstmt->c_reached_end_of_then = reached;
 	/* XXX: what if inside 'if (0)'? */
 	set_reached(!cstmt->c_always_then);
@@ -656,9 +610,6 @@ stmt_if_else_stmt(bool els)
 void
 stmt_switch_expr(tnode_t *tn)
 {
-	tspec_t t;
-	type_t *tp;
-
 	if (tn != NULL)
 		tn = cconv(tn);
 	if (tn != NULL)
@@ -669,7 +620,7 @@ stmt_switch_expr(tnode_t *tn)
 		tn = NULL;
 	}
 	if (tn != NULL && !allow_c90) {
-		t = tn->tn_type->t_tspec;
+		tspec_t t = tn->tn_type->t_tspec;
 		if (t == LONG || t == ULONG || t == LLONG || t == ULLONG) {
 			/* switch expression must be of type 'int' in ... */
 			warning(271);
@@ -681,7 +632,7 @@ stmt_switch_expr(tnode_t *tn)
 	 * (*tp) is allocated on tree memory, the type must be duplicated. This
 	 * is not too complicated because it is only an integer type.
 	 */
-	tp = xcalloc(1, sizeof(*tp));
+	type_t *tp = xcalloc(1, sizeof(*tp));
 	if (tn != NULL) {
 		tp->t_tspec = tn->tn_type->t_tspec;
 		if ((tp->t_is_enum = tn->tn_type->t_is_enum) != false)
@@ -763,8 +714,6 @@ stmt_switch_expr_stmt(void)
 void
 stmt_while_expr(tnode_t *tn)
 {
-	bool body_reached;
-
 	if (!reached) {
 		/* loop not entered at top */
 		warning(207);
@@ -778,7 +727,7 @@ stmt_while_expr(tnode_t *tn)
 	begin_control_statement(CS_WHILE);
 	cstmt->c_loop = true;
 	cstmt->c_maybe_endless = is_nonzero(tn);
-	body_reached = !is_zero(tn);
+	bool body_reached = !is_zero(tn);
 
 	check_getopt_begin_while(tn);
 	expr(tn, false, true, true, false);
@@ -789,13 +738,7 @@ stmt_while_expr(tnode_t *tn)
 void
 stmt_while_expr_stmt(void)
 {
-
-	/*
-	 * The end of the loop can be reached if it is no endless loop or there
-	 * was a break statement which was reached.
-	 */
 	set_reached(!cstmt->c_maybe_endless || cstmt->c_break);
-
 	check_getopt_end_while();
 	end_control_statement(CS_WHILE);
 }
@@ -803,7 +746,6 @@ stmt_while_expr_stmt(void)
 void
 stmt_do(void)
 {
-
 	if (!reached) {
 		/* loop not entered at top */
 		warning(207);
@@ -817,11 +759,6 @@ stmt_do(void)
 void
 stmt_do_while_expr(tnode_t *tn)
 {
-
-	/*
-	 * If there was a continue statement, the expression controlling the
-	 * loop is reached.
-	 */
 	if (cstmt->c_continue)
 		set_reached(true);
 
@@ -848,7 +785,6 @@ stmt_do_while_expr(tnode_t *tn)
 void
 stmt_for_exprs(tnode_t *tn1, tnode_t *tn2, tnode_t *tn3)
 {
-
 	/*
 	 * If there is no initialization expression it is possible that it is
 	 * intended not to enter the loop at top.
@@ -890,18 +826,14 @@ stmt_for_exprs(tnode_t *tn1, tnode_t *tn
 void
 stmt_for_exprs_stmt(void)
 {
-	pos_t cpos, cspos;
-	tnode_t *tn3;
-
 	if (cstmt->c_continue)
 		set_reached(true);
 
-	cpos = curr_pos;
-	cspos = csrc_pos;
-
-	/* Restore the tree memory for the reinitialization expression */
 	expr_restore_memory(cstmt->c_for_expr3_mem);
-	tn3 = cstmt->c_for_expr3;
+	tnode_t *tn3 = cstmt->c_for_expr3;
+
+	pos_t saved_curr_pos = curr_pos;
+	pos_t saved_csrc_pos = csrc_pos;
 	curr_pos = cstmt->c_for_expr3_pos;
 	csrc_pos = cstmt->c_for_expr3_csrc_pos;
 
@@ -912,17 +844,14 @@ stmt_for_exprs_stmt(void)
 		set_reached(true);
 	}
 
-	if (tn3 != NULL) {
+	if (tn3 != NULL)
 		expr(tn3, false, false, true, false);
-	} else {
+	else
 		expr_free_all();
-	}
 
-	curr_pos = cpos;
-	csrc_pos = cspos;
+	curr_pos = saved_curr_pos;
+	csrc_pos = saved_csrc_pos;
 
-	/* An endless loop without break will never terminate */
-	/* TODO: What if the loop contains a 'return'? */
 	set_reached(cstmt->c_break || !cstmt->c_maybe_endless);
 
 	end_control_statement(CS_FOR);
@@ -931,30 +860,23 @@ stmt_for_exprs_stmt(void)
 void
 stmt_goto(sym_t *lab)
 {
-
 	mark_as_used(lab, false, false);
-
 	check_statement_reachable();
-
 	set_reached(false);
 }
 
 void
 stmt_break(void)
 {
-	control_statement *cs;
-
-	cs = cstmt;
+	control_statement *cs = cstmt;
 	while (cs != NULL && !cs->c_loop && !cs->c_switch)
 		cs = cs->c_surrounding;
 
-	if (cs == NULL) {
+	if (cs == NULL)
 		/* break outside loop or switch */
 		error(208);
-	} else {
-		if (reached)
-			cs->c_break = true;
-	}
+	else if (reached)
+		cs->c_break = true;
 
 	if (bflag)
 		check_statement_reachable();
@@ -970,13 +892,12 @@ stmt_continue(void)
 	for (cs = cstmt; cs != NULL && !cs->c_loop; cs = cs->c_surrounding)
 		continue;
 
-	if (cs == NULL) {
+	if (cs == NULL)
 		/* continue outside loop */
 		error(209);
-	} else {
+	else
 		/* TODO: only if reachable, for symmetry with c_break */
 		cs->c_continue = true;
-	}
 
 	check_statement_reachable();
 
@@ -986,7 +907,6 @@ stmt_continue(void)
 static bool
 is_parenthesized(const tnode_t *tn)
 {
-
 	while (!tn->tn_parenthesized && tn->tn_op == COMMA)
 		tn = tn->tn_right;
 	return tn->tn_parenthesized && !tn->tn_sys;
@@ -995,7 +915,6 @@ is_parenthesized(const tnode_t *tn)
 static void
 check_return_value(bool sys, tnode_t *tn)
 {
-
 	if (any_query_enabled && is_parenthesized(tn)) {
 		/* parenthesized return value */
 		query_message(9);
@@ -1067,14 +986,9 @@ stmt_return(bool sys, tnode_t *tn)
 	set_reached(false);
 }
 
-/*
- * Do some cleanup after a global declaration or definition.
- * Especially remove information about unused lint comments.
- */
 void
 global_clean_up_decl(bool silent)
 {
-
 	if (nargusg != -1) {
 		if (!silent) {
 			/* comment ** %s ** must precede function definition */
@@ -1122,10 +1036,6 @@ global_clean_up_decl(bool silent)
 static void
 argsused(int n)
 {
-
-	if (n == -1)
-		n = 0;
-
 	if (dcs->d_kind != DLK_EXTERN) {
 		/* comment ** %s ** must be outside function */
 		warning(280, "ARGSUSED");
@@ -1135,17 +1045,13 @@ argsused(int n)
 		/* duplicate comment ** %s ** */
 		warning(281, "ARGSUSED");
 	}
-	nargusg = n;
+	nargusg = n != -1 ? n : 0;
 	argsused_pos = curr_pos;
 }
 
 static void
 varargs(int n)
 {
-
-	if (n == -1)
-		n = 0;
-
 	if (dcs->d_kind != DLK_EXTERN) {
 		/* comment ** %s ** must be outside function */
 		warning(280, "VARARGS");
@@ -1155,7 +1061,7 @@ varargs(int n)
 		/* duplicate comment ** %s ** */
 		warning(281, "VARARGS");
 	}
-	nvararg = n;
+	nvararg = n != -1 ? n : 0;
 	vapos = curr_pos;
 }
 
@@ -1166,10 +1072,6 @@ varargs(int n)
 static void
 printflike(int n)
 {
-
-	if (n == -1)
-		n = 0;
-
 	if (dcs->d_kind != DLK_EXTERN) {
 		/* comment ** %s ** must be outside function */
 		warning(280, "PRINTFLIKE");
@@ -1179,7 +1081,7 @@ printflike(int n)
 		/* duplicate comment ** %s ** */
 		warning(281, "PRINTFLIKE");
 	}
-	printflike_argnum = n;
+	printflike_argnum = n != -1 ? n : 0;
 	printflike_pos = curr_pos;
 }
 
@@ -1190,10 +1092,6 @@ printflike(int n)
 static void
 scanflike(int n)
 {
-
-	if (n == -1)
-		n = 0;
-
 	if (dcs->d_kind != DLK_EXTERN) {
 		/* comment ** %s ** must be outside function */
 		warning(280, "SCANFLIKE");
@@ -1203,14 +1101,13 @@ scanflike(int n)
 		/* duplicate comment ** %s ** */
 		warning(281, "SCANFLIKE");
 	}
-	scanflike_argnum = n;
+	scanflike_argnum = n != -1 ? n : 0;
 	scanflike_pos = curr_pos;
 }
 
 static void
 lintlib(void)
 {
-
 	if (dcs->d_kind != DLK_EXTERN) {
 		/* comment ** %s ** must be outside function */
 		warning(280, "LINTLIBRARY");
@@ -1228,7 +1125,6 @@ lintlib(void)
 static void
 protolib(int n)
 {
-
 	if (dcs->d_kind != DLK_EXTERN) {
 		/* comment ** %s ** must be outside function */
 		warning(280, "PROTOLIB");

Index: src/usr.bin/xlint/lint1/lex.c
diff -u src/usr.bin/xlint/lint1/lex.c:1.209 src/usr.bin/xlint/lint1/lex.c:1.210
--- src/usr.bin/xlint/lint1/lex.c:1.209	Sat Feb  3 10:56:18 2024
+++ src/usr.bin/xlint/lint1/lex.c	Sat Feb  3 12:57:12 2024
@@ -1,4 +1,4 @@
-/* $NetBSD: lex.c,v 1.209 2024/02/03 10:56:18 rillig Exp $ */
+/* $NetBSD: lex.c,v 1.210 2024/02/03 12:57:12 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.209 2024/02/03 10:56:18 rillig Exp $");
+__RCSID("$NetBSD: lex.c,v 1.210 2024/02/03 12:57:12 rillig Exp $");
 #endif
 
 #include <ctype.h>
@@ -211,11 +211,8 @@ symbol_kind sym_kind;
 static unsigned int
 hash(const char *s)
 {
-	unsigned int v;
-	const char *p;
-
-	v = 0;
-	for (p = s; *p != '\0'; p++) {
+	unsigned int v = 0;
+	for (const char *p = s; *p != '\0'; p++) {
 		v = (v << 4) + (unsigned char)*p;
 		v ^= v >> 28;
 	}
@@ -225,9 +222,7 @@ hash(const char *s)
 static void
 symtab_add(sym_t *sym)
 {
-	unsigned int h;
-
-	h = hash(sym->s_name);
+	unsigned int h = hash(sym->s_name);
 	if ((sym->s_symtab_next = symtab[h]) != NULL)
 		symtab[h]->s_symtab_ref = &sym->s_symtab_next;
 	sym->s_symtab_ref = &symtab[h];
@@ -345,7 +340,7 @@ debug_symtab(void)
 #endif
 
 static void
-add_keyword(const struct keyword *kw, bool leading, bool trailing)
+register_keyword(const struct keyword *kw, bool leading, bool trailing)
 {
 
 	const char *name;
@@ -402,7 +397,7 @@ is_keyword_known(const struct keyword *k
 
 /* Write all keywords to the symbol table. */
 void
-initscan(void)
+init_lex(void)
 {
 
 	size_t n = sizeof(keywords) / sizeof(keywords[0]);
@@ -411,11 +406,11 @@ initscan(void)
 		if (!is_keyword_known(kw))
 			continue;
 		if (kw->kw_plain)
-			add_keyword(kw, false, false);
+			register_keyword(kw, false, false);
 		if (kw->kw_leading)
-			add_keyword(kw, true, false);
+			register_keyword(kw, true, false);
 		if (kw->kw_both)
-			add_keyword(kw, true, true);
+			register_keyword(kw, true, true);
 	}
 }
 

Index: src/usr.bin/xlint/lint1/main1.c
diff -u src/usr.bin/xlint/lint1/main1.c:1.80 src/usr.bin/xlint/lint1/main1.c:1.81
--- src/usr.bin/xlint/lint1/main1.c:1.80	Fri Feb  2 23:36:01 2024
+++ src/usr.bin/xlint/lint1/main1.c	Sat Feb  3 12:57:12 2024
@@ -1,4 +1,4 @@
-/*	$NetBSD: main1.c,v 1.80 2024/02/02 23:36:01 rillig Exp $	*/
+/*	$NetBSD: main1.c,v 1.81 2024/02/03 12:57:12 rillig Exp $	*/
 
 /*
  * Copyright (c) 1994, 1995 Jochen Pohl
@@ -37,7 +37,7 @@
 
 #include <sys/cdefs.h>
 #if defined(__RCSID)
-__RCSID("$NetBSD: main1.c,v 1.80 2024/02/02 23:36:01 rillig Exp $");
+__RCSID("$NetBSD: main1.c,v 1.81 2024/02/03 12:57:12 rillig Exp $");
 #endif
 
 #include <sys/types.h>
@@ -226,8 +226,8 @@ main(int argc, char *argv[])
 #endif
 
 	(void)signal(SIGFPE, sigfpe);
-	initdecl();
-	initscan();
+	init_decl();
+	init_lex();
 
 	if (allow_gcc && allow_c90) {
 		if ((yyin = gcc_builtins()) == NULL)

Reply via email to