Module Name: src Committed By: rillig Date: Sat Apr 16 14:06:11 UTC 2022
Modified Files: src/usr.bin/xlint/lint1: tree.c Log Message: lint: clean up conditions for migration check between trad and C90 No functional change, as each of the conditions was effectively '!tflag && !sflag && !Sflag' (even if distributed over several statements). To generate a diff of this commit: cvs rdiff -u -r1.427 -r1.428 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.427 src/usr.bin/xlint/lint1/tree.c:1.428 --- src/usr.bin/xlint/lint1/tree.c:1.427 Fri Apr 15 21:50:07 2022 +++ src/usr.bin/xlint/lint1/tree.c Sat Apr 16 14:06:10 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: tree.c,v 1.427 2022/04/15 21:50:07 rillig Exp $ */ +/* $NetBSD: tree.c,v 1.428 2022/04/16 14:06:10 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.427 2022/04/15 21:50:07 rillig Exp $"); +__RCSID("$NetBSD: tree.c,v 1.428 2022/04/16 14:06:10 rillig Exp $"); #endif #include <float.h> @@ -944,24 +944,24 @@ typeok_shr(const mod_t *mp, /* bitwise '%s' on signed value nonportable */ warning(120, mp->m_name); } - } else if (!tflag && !sflag && !is_uinteger(olt) && is_uinteger(ort)) { + } else if (allow_trad && allow_c90 && + !is_uinteger(olt) && is_uinteger(ort)) { /* * The left operand would become unsigned in * traditional C. */ - if (hflag && !Sflag && - (ln->tn_op != CON || ln->tn_val->v_quad < 0)) { + if (hflag && (ln->tn_op != CON || ln->tn_val->v_quad < 0)) { /* semantics of '%s' change in ANSI C; use ... */ warning(118, mp->m_name); } - } else if (!tflag && !sflag && !is_uinteger(olt) && !is_uinteger(ort) && + } else if (allow_trad && allow_c90 && + !is_uinteger(olt) && !is_uinteger(ort) && portable_size_in_bits(lt) < portable_size_in_bits(rt)) { /* - * In traditional C the left operand would be extended, - * possibly with 1, and then shifted. + * In traditional C the left operand would be extended + * (possibly sign-extended) and then shifted. */ - if (hflag && !Sflag && - (ln->tn_op != CON || ln->tn_val->v_quad < 0)) { + if (hflag && (ln->tn_op != CON || ln->tn_val->v_quad < 0)) { /* semantics of '%s' change in ANSI C; use ... */ warning(118, mp->m_name); } @@ -2077,7 +2077,7 @@ convert(op_t op, int arg, type_t *tp, tn nt = tp->t_tspec; ot = tn->tn_type->t_tspec; - if (!tflag && !sflag && !Sflag && op == FARG) + if (allow_trad && allow_c90 && op == FARG) check_prototype_conversion(arg, nt, ot, tp, tn); if (is_integer(nt) && is_integer(ot)) {