Module Name: src Committed By: rillig Date: Sat Apr 22 15:14:37 UTC 2023
Modified Files: src/tests/usr.bin/xlint/lint1: msg_159.c src/usr.bin/xlint/lint1: tree.c Log Message: lint: do not warn about parenthesized assignment in controlling expr Same as for GCC and Clang. To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.5 src/tests/usr.bin/xlint/lint1/msg_159.c cvs rdiff -u -r1.514 -r1.515 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/tests/usr.bin/xlint/lint1/msg_159.c diff -u src/tests/usr.bin/xlint/lint1/msg_159.c:1.4 src/tests/usr.bin/xlint/lint1/msg_159.c:1.5 --- src/tests/usr.bin/xlint/lint1/msg_159.c:1.4 Wed Jul 6 21:13:13 2022 +++ src/tests/usr.bin/xlint/lint1/msg_159.c Sat Apr 22 15:14:37 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: msg_159.c,v 1.4 2022/07/06 21:13:13 rillig Exp $ */ +/* $NetBSD: msg_159.c,v 1.5 2023/04/22 15:14:37 rillig Exp $ */ # 3 "msg_159.c" // Test for message: assignment in conditional context [159] @@ -12,6 +12,11 @@ example(int a, int b) if (a == b) return "comparison, not parenthesized"; + /* + * Clang-Tidy marks a comparison with extra parentheses as an error, + * expecting that assignments are parenthesized and comparisons + * aren't. + */ if ((a == b)) return "comparison, parenthesized"; @@ -27,10 +32,10 @@ example(int a, int b) return "assignment, not parenthesized"; /* - * XXX: GCC has the convention that an assignment that is - * parenthesized is intended as an assignment. + * GCC established the convention that an assignment that is + * parenthesized is intended as an assignment, so don't warn about + * that case. */ - /* expect+1: warning: assignment in conditional context [159] */ if ((a = b)) return "assignment, parenthesized"; Index: src/usr.bin/xlint/lint1/tree.c diff -u src/usr.bin/xlint/lint1/tree.c:1.514 src/usr.bin/xlint/lint1/tree.c:1.515 --- src/usr.bin/xlint/lint1/tree.c:1.514 Sat Apr 22 09:39:14 2023 +++ src/usr.bin/xlint/lint1/tree.c Sat Apr 22 15:14:37 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: tree.c,v 1.514 2023/04/22 09:39:14 rillig Exp $ */ +/* $NetBSD: tree.c,v 1.515 2023/04/22 15:14:37 rillig Exp $ */ /* * Copyright (c) 1994, 1995 Jochen Pohl @@ -37,7 +37,7 @@ #include <sys/cdefs.h> #if defined(__RCSID) -__RCSID("$NetBSD: tree.c,v 1.514 2023/04/22 09:39:14 rillig Exp $"); +__RCSID("$NetBSD: tree.c,v 1.515 2023/04/22 15:14:37 rillig Exp $"); #endif #include <float.h> @@ -4372,7 +4372,7 @@ expr(tnode_t *tn, bool vctx, bool cond, check_statement_reachable(); check_expr_misc(tn, vctx, cond, !cond, false, false, false); - if (tn->tn_op == ASSIGN) { + if (tn->tn_op == ASSIGN && !tn->tn_parenthesized) { if (hflag && cond) /* assignment in conditional context */ warning(159);