Module Name: src Committed By: rillig Date: Sat Jul 31 11:37:54 UTC 2021
Modified Files: src/usr.bin/xlint/lint1: tree.c Log Message: lint: in has_constant_member, don't reuse variables No functional change. To generate a diff of this commit: cvs rdiff -u -r1.320 -r1.321 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/tree.c diff -u src/usr.bin/xlint/lint1/tree.c:1.320 src/usr.bin/xlint/lint1/tree.c:1.321 --- src/usr.bin/xlint/lint1/tree.c:1.320 Sat Jul 31 11:03:04 2021 +++ src/usr.bin/xlint/lint1/tree.c Sat Jul 31 11:37:53 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: tree.c,v 1.320 2021/07/31 11:03:04 rillig Exp $ */ +/* $NetBSD: tree.c,v 1.321 2021/07/31 11:37:53 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.320 2021/07/31 11:03:04 rillig Exp $"); +__RCSID("$NetBSD: tree.c,v 1.321 2021/07/31 11:37:53 rillig Exp $"); #endif #include <float.h> @@ -2546,19 +2546,17 @@ merge_qualifiers(type_t *tp1, const type static bool has_constant_member(const type_t *tp) { - sym_t *m; - tspec_t t; + sym_t *m; - lint_assert((t = tp->t_tspec) == STRUCT || t == UNION); + lint_assert(is_struct_or_union(tp->t_tspec)); for (m = tp->t_str->sou_first_member; m != NULL; m = m->s_next) { - tp = m->s_type; - if (tp->t_const) + const type_t *mtp = m->s_type; + if (mtp->t_const) + return true; + if (is_struct_or_union(mtp->t_tspec) && + has_constant_member(mtp)) return true; - if ((t = tp->t_tspec) == STRUCT || t == UNION) { - if (has_constant_member(m->s_type)) - return true; - } } return false; }