Module Name: src Committed By: rillig Date: Sun Aug 22 21:27:15 UTC 2021
Modified Files: src/usr.bin/xlint/lint1: debug.c lint1.h tree.c Log Message: lint: merge duplicate code for binary operator No functional change. To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 src/usr.bin/xlint/lint1/debug.c cvs rdiff -u -r1.122 -r1.123 src/usr.bin/xlint/lint1/lint1.h cvs rdiff -u -r1.345 -r1.346 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.2 src/usr.bin/xlint/lint1/debug.c:1.3 --- src/usr.bin/xlint/lint1/debug.c:1.2 Sun Aug 1 19:11:54 2021 +++ src/usr.bin/xlint/lint1/debug.c Sun Aug 22 21:27:15 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: debug.c,v 1.2 2021/08/01 19:11:54 rillig Exp $ */ +/* $NetBSD: debug.c,v 1.3 2021/08/22 21:27:15 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.2 2021/08/01 19:11:54 rillig Exp $"); +__RCSID("$NetBSD: debug.c,v 1.3 2021/08/22 21:27:15 rillig Exp $"); #endif #include <stdlib.h> @@ -151,7 +151,7 @@ debug_node(const tnode_t *tn) debug_indent_inc(); debug_node(tn->tn_left); - if (modtab[op].m_binary || tn->tn_right != NULL) + if (is_binary(tn) || tn->tn_right != NULL) debug_node(tn->tn_right); debug_indent_dec(); } Index: src/usr.bin/xlint/lint1/lint1.h diff -u src/usr.bin/xlint/lint1/lint1.h:1.122 src/usr.bin/xlint/lint1/lint1.h:1.123 --- src/usr.bin/xlint/lint1/lint1.h:1.122 Sun Aug 22 13:01:47 2021 +++ src/usr.bin/xlint/lint1/lint1.h Sun Aug 22 21:27:15 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: lint1.h,v 1.122 2021/08/22 13:01:47 rillig Exp $ */ +/* $NetBSD: lint1.h,v 1.123 2021/08/22 21:27:15 rillig Exp $ */ /* * Copyright (c) 1996 Christopher G. Demetriou. All Rights Reserved. @@ -552,6 +552,12 @@ is_nonzero(const tnode_t *tn) return tn != NULL && tn->tn_op == CON && is_nonzero_val(tn->tn_val); } +static inline bool +is_binary(const tnode_t *tn) +{ + return modtab[tn->tn_op].m_binary; +} + static inline uint64_t bit(unsigned i) { Index: src/usr.bin/xlint/lint1/tree.c diff -u src/usr.bin/xlint/lint1/tree.c:1.345 src/usr.bin/xlint/lint1/tree.c:1.346 --- src/usr.bin/xlint/lint1/tree.c:1.345 Sun Aug 22 21:17:04 2021 +++ src/usr.bin/xlint/lint1/tree.c Sun Aug 22 21:27:15 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: tree.c,v 1.345 2021/08/22 21:17:04 rillig Exp $ */ +/* $NetBSD: tree.c,v 1.346 2021/08/22 21:27:15 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.345 2021/08/22 21:17:04 rillig Exp $"); +__RCSID("$NetBSD: tree.c,v 1.346 2021/08/22 21:27:15 rillig Exp $"); #endif #include <float.h> @@ -3033,7 +3033,7 @@ fold(tnode_t *tn) t = tn->tn_left->tn_type->t_tspec; utyp = !is_integer(t) || is_uinteger(t); ul = sl = tn->tn_left->tn_val->v_quad; - if (modtab[tn->tn_op].m_binary) + if (is_binary(tn)) ur = sr = tn->tn_right->tn_val->v_quad; mask = value_bits(size_in_bits(t)); @@ -3157,7 +3157,7 @@ fold(tnode_t *tn) cn = build_constant(tn->tn_type, v); if (tn->tn_left->tn_system_dependent) cn->tn_system_dependent = true; - if (modtab[tn->tn_op].m_binary && tn->tn_right->tn_system_dependent) + if (is_binary(tn) && tn->tn_right->tn_system_dependent) cn->tn_system_dependent = true; return cn; @@ -3178,7 +3178,7 @@ fold_test(tnode_t *tn) lint_assert(v->v_tspec == INT || (Tflag && v->v_tspec == BOOL)); l = constant_is_nonzero(tn->tn_left); - r = modtab[tn->tn_op].m_binary && constant_is_nonzero(tn->tn_right); + r = is_binary(tn) && constant_is_nonzero(tn->tn_right); switch (tn->tn_op) { case NOT: @@ -3216,11 +3216,10 @@ fold_float(tnode_t *tn) lint_assert(is_floating(t)); lint_assert(t == tn->tn_left->tn_type->t_tspec); - lint_assert(!modtab[tn->tn_op].m_binary || - t == tn->tn_right->tn_type->t_tspec); + lint_assert(!is_binary(tn) || t == tn->tn_right->tn_type->t_tspec); lv = tn->tn_left->tn_val->v_ldbl; - if (modtab[tn->tn_op].m_binary) + if (is_binary(tn)) rv = tn->tn_right->tn_val->v_ldbl; switch (tn->tn_op) { @@ -4334,7 +4333,7 @@ check_precedence_confusion(tnode_t *tn) debug_node(tn); - lint_assert(modtab[tn->tn_op].m_binary); + lint_assert(is_binary(tn)); for (ln = tn->tn_left; ln->tn_op == CVT; ln = ln->tn_left) continue; for (rn = tn->tn_right; rn->tn_op == CVT; rn = rn->tn_left)