Module Name: src Committed By: rillig Date: Sun Aug 1 18:37:29 UTC 2021
Modified Files: src/usr.bin/xlint/lint1: decl.c externs1.h main1.c tree.c Log Message: lint: remove option -d, clean up debug logging The command line option -d was not used by /usr/bin/lint, and it only triggered a handful of debug messages. Move this debug logging over to the compile-time -DDEBUG setting. Move display_expression further up to avoid the forward declaration. To generate a diff of this commit: cvs rdiff -u -r1.216 -r1.217 src/usr.bin/xlint/lint1/decl.c cvs rdiff -u -r1.126 -r1.127 src/usr.bin/xlint/lint1/externs1.h cvs rdiff -u -r1.51 -r1.52 src/usr.bin/xlint/lint1/main1.c cvs rdiff -u -r1.324 -r1.325 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/decl.c diff -u src/usr.bin/xlint/lint1/decl.c:1.216 src/usr.bin/xlint/lint1/decl.c:1.217 --- src/usr.bin/xlint/lint1/decl.c:1.216 Sun Aug 1 06:40:37 2021 +++ src/usr.bin/xlint/lint1/decl.c Sun Aug 1 18:37:29 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: decl.c,v 1.216 2021/08/01 06:40:37 rillig Exp $ */ +/* $NetBSD: decl.c,v 1.217 2021/08/01 18:37:29 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.216 2021/08/01 06:40:37 rillig Exp $"); +__RCSID("$NetBSD: decl.c,v 1.217 2021/08/01 18:37:29 rillig Exp $"); #endif #include <sys/param.h> @@ -649,8 +649,7 @@ begin_declaration_level(scl_t sc) dcs = di; di->d_ctx = sc; di->d_ldlsym = &di->d_dlsyms; - if (dflag) - (void)printf("%s(%p %s)\n", __func__, dcs, scl_name(sc)); + debug_step("%s(%p %s)", __func__, dcs, scl_name(sc)); } /* @@ -661,9 +660,7 @@ end_declaration_level(void) { dinfo_t *di; - if (dflag) - (void)printf("%s(%p %s)\n", - __func__, dcs, scl_name(dcs->d_ctx)); + debug_step("%s(%p %s)", __func__, dcs, scl_name(dcs->d_ctx)); lint_assert(dcs->d_next != NULL); di = dcs; Index: src/usr.bin/xlint/lint1/externs1.h diff -u src/usr.bin/xlint/lint1/externs1.h:1.126 src/usr.bin/xlint/lint1/externs1.h:1.127 --- src/usr.bin/xlint/lint1/externs1.h:1.126 Sat Jul 31 19:12:35 2021 +++ src/usr.bin/xlint/lint1/externs1.h Sun Aug 1 18:37:29 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: externs1.h,v 1.126 2021/07/31 19:12:35 rillig Exp $ */ +/* $NetBSD: externs1.h,v 1.127 2021/08/01 18:37:29 rillig Exp $ */ /* * Copyright (c) 1994, 1995 Jochen Pohl @@ -38,7 +38,6 @@ extern int aflag; extern bool bflag; extern bool cflag; extern bool c11flag; -extern bool dflag; extern bool eflag; extern bool Fflag; extern bool gflag; Index: src/usr.bin/xlint/lint1/main1.c diff -u src/usr.bin/xlint/lint1/main1.c:1.51 src/usr.bin/xlint/lint1/main1.c:1.52 --- src/usr.bin/xlint/lint1/main1.c:1.51 Sun Aug 1 06:40:37 2021 +++ src/usr.bin/xlint/lint1/main1.c Sun Aug 1 18:37:29 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: main1.c,v 1.51 2021/08/01 06:40:37 rillig Exp $ */ +/* $NetBSD: main1.c,v 1.52 2021/08/01 18:37:29 rillig Exp $ */ /* * Copyright (c) 1994, 1995 Jochen Pohl @@ -37,7 +37,7 @@ #include <sys/cdefs.h> #if defined(__RCSID) && !defined(lint) -__RCSID("$NetBSD: main1.c,v 1.51 2021/08/01 06:40:37 rillig Exp $"); +__RCSID("$NetBSD: main1.c,v 1.52 2021/08/01 18:37:29 rillig Exp $"); #endif #include <sys/types.h> @@ -71,9 +71,6 @@ bool cflag; /* Allow features from C11, C99 and C90. */ bool c11flag; -/* Print various debug information. */ -bool dflag; - /* Perform stricter checking of enum types and operations on enum types. */ bool eflag; @@ -186,7 +183,6 @@ main(int argc, char *argv[]) case 'a': aflag++; break; case 'b': bflag = true; break; case 'c': cflag = true; break; - case 'd': dflag = true; break; case 'e': eflag = true; break; case 'F': Fflag = true; break; case 'g': gflag = true; break; @@ -257,8 +253,6 @@ main(int argc, char *argv[]) #ifdef DEBUG setvbuf(stdout, NULL, _IONBF, 0); #endif - if (dflag) - setvbuf(stdout, NULL, _IONBF, 0); #ifdef YYDEBUG if (yflag) yydebug = 1; Index: src/usr.bin/xlint/lint1/tree.c diff -u src/usr.bin/xlint/lint1/tree.c:1.324 src/usr.bin/xlint/lint1/tree.c:1.325 --- src/usr.bin/xlint/lint1/tree.c:1.324 Sun Aug 1 14:45:39 2021 +++ src/usr.bin/xlint/lint1/tree.c Sun Aug 1 18:37:29 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: tree.c,v 1.324 2021/08/01 14:45:39 rillig Exp $ */ +/* $NetBSD: tree.c,v 1.325 2021/08/01 18:37:29 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.324 2021/08/01 14:45:39 rillig Exp $"); +__RCSID("$NetBSD: tree.c,v 1.325 2021/08/01 18:37:29 rillig Exp $"); #endif #include <float.h> @@ -90,7 +90,6 @@ static tnode_t *fold_float(tnode_t *); static tnode_t *check_function_arguments(type_t *, tnode_t *); static tnode_t *check_prototype_argument(int, type_t *, tnode_t *); static void check_null_effect(const tnode_t *); -static void display_expression(const tnode_t *, int); static void check_array_index(tnode_t *, bool); static void check_integer_comparison(op_t, tnode_t *, tnode_t *); static void check_precedence_confusion(tnode_t *); @@ -3603,8 +3602,7 @@ constant(tnode_t *tn, bool required) if (tn == NULL) { lint_assert(nerr != 0); - if (dflag) - printf("constant node is null; returning 1 instead\n"); + debug_step("constant node is null; returning 1 instead"); v->v_tspec = INT; v->v_quad = 1; return v; @@ -3645,6 +3643,67 @@ is_constcond_false(const tnode_t *tn, ts tn->tn_op == CON && tn->tn_val->v_quad == 0; } +#ifdef DEBUG +/* Dump an expression to stdout. */ +static void +display_expression(const tnode_t *tn, int offs) +{ + uint64_t uq; + + if (tn == NULL) { + (void)printf("%*s%s\n", offs, "", "NULL"); + return; + } + (void)printf("%*sop %s ", offs, "", op_name(tn->tn_op)); + + if (tn->tn_op == NAME) { + (void)printf("%s: %s ", + tn->tn_sym->s_name, + storage_class_name(tn->tn_sym->s_scl)); + } else if (tn->tn_op == CON && is_floating(tn->tn_type->t_tspec)) { + (void)printf("%#g ", (double)tn->tn_val->v_ldbl); + } else if (tn->tn_op == CON && is_integer(tn->tn_type->t_tspec)) { + uq = tn->tn_val->v_quad; + (void)printf("0x %08lx %08lx ", + (long)(uq >> 32) & 0xffffffffl, + (long)uq & 0xffffffffl); + } else if (tn->tn_op == CON && tn->tn_type->t_tspec == BOOL) { + (void)printf("%s ", + tn->tn_val->v_quad != 0 ? "true" : "false"); + } else if (tn->tn_op == CON) { + lint_assert(tn->tn_type->t_tspec == PTR); + (void)printf("0x%0*lx ", (int)(sizeof(void *) * CHAR_BIT / 4), + (u_long)tn->tn_val->v_quad); + } else if (tn->tn_op == STRING) { + if (tn->tn_string->st_tspec == CHAR) { + (void)printf("\"%s\"", tn->tn_string->st_cp); + } else { + char *s; + size_t n; + n = MB_CUR_MAX * (tn->tn_string->st_len + 1); + s = xmalloc(n); + (void)wcstombs(s, tn->tn_string->st_wcp, n); + (void)printf("L\"%s\"", s); + free(s); + } + (void)printf(" "); + } else if (tn->tn_op == FSEL) { + (void)printf("o=%d, l=%d ", tn->tn_type->t_foffs, + tn->tn_type->t_flen); + } + (void)printf("%s\n", type_name(tn->tn_type)); + if (tn->tn_op == NAME || tn->tn_op == CON || tn->tn_op == STRING) + return; + display_expression(tn->tn_left, offs + 2); + if (modtab[tn->tn_op].m_binary || + (tn->tn_op == PUSH && tn->tn_right != NULL)) { + display_expression(tn->tn_right, offs + 2); + } +} +#else +#define display_expression(tn, offs) debug_noop() +#endif + /* * Perform some tests on expressions which can't be done in build_binary() * and functions called by build_binary(). These tests must be done here @@ -3687,8 +3746,7 @@ expr(tnode_t *tn, bool vctx, bool tctx, if (tn->tn_op != COMMA && !vctx && !tctx) check_null_effect(tn); } - if (dflag) - display_expression(tn, 0); + display_expression(tn, 0); /* free the tree memory */ if (dofreeblk) @@ -3733,66 +3791,6 @@ check_null_effect(const tnode_t *tn) } /* - * Dump an expression to stdout - * only used for debugging - */ -static void -display_expression(const tnode_t *tn, int offs) -{ - uint64_t uq; - - if (tn == NULL) { - (void)printf("%*s%s\n", offs, "", "NULL"); - return; - } - (void)printf("%*sop %s ", offs, "", op_name(tn->tn_op)); - - if (tn->tn_op == NAME) { - (void)printf("%s: %s ", - tn->tn_sym->s_name, - storage_class_name(tn->tn_sym->s_scl)); - } else if (tn->tn_op == CON && is_floating(tn->tn_type->t_tspec)) { - (void)printf("%#g ", (double)tn->tn_val->v_ldbl); - } else if (tn->tn_op == CON && is_integer(tn->tn_type->t_tspec)) { - uq = tn->tn_val->v_quad; - (void)printf("0x %08lx %08lx ", - (long)(uq >> 32) & 0xffffffffl, - (long)uq & 0xffffffffl); - } else if (tn->tn_op == CON && tn->tn_type->t_tspec == BOOL) { - (void)printf("%s ", - tn->tn_val->v_quad != 0 ? "true" : "false"); - } else if (tn->tn_op == CON) { - lint_assert(tn->tn_type->t_tspec == PTR); - (void)printf("0x%0*lx ", (int)(sizeof(void *) * CHAR_BIT / 4), - (u_long)tn->tn_val->v_quad); - } else if (tn->tn_op == STRING) { - if (tn->tn_string->st_tspec == CHAR) { - (void)printf("\"%s\"", tn->tn_string->st_cp); - } else { - char *s; - size_t n; - n = MB_CUR_MAX * (tn->tn_string->st_len + 1); - s = xmalloc(n); - (void)wcstombs(s, tn->tn_string->st_wcp, n); - (void)printf("L\"%s\"", s); - free(s); - } - (void)printf(" "); - } else if (tn->tn_op == FSEL) { - (void)printf("o=%d, l=%d ", tn->tn_type->t_foffs, - tn->tn_type->t_flen); - } - (void)printf("%s\n", type_name(tn->tn_type)); - if (tn->tn_op == NAME || tn->tn_op == CON || tn->tn_op == STRING) - return; - display_expression(tn->tn_left, offs + 2); - if (modtab[tn->tn_op].m_binary || - (tn->tn_op == PUSH && tn->tn_right != NULL)) { - display_expression(tn->tn_right, offs + 2); - } -} - -/* * Called by expr() to recursively perform some tests. */ /* ARGSUSED */