Module Name:    src
Committed By:   rillig
Date:           Mon Jan  4 23:50:47 UTC 2021

Modified Files:
        src/tests/usr.bin/xlint/lint1: msg_169.exp
        src/usr.bin/xlint/lint1: tree.c

Log Message:
lint: fix bug in "precedence confusion possible [169]"


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 src/tests/usr.bin/xlint/lint1/msg_169.exp
cvs rdiff -u -r1.131 -r1.132 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_169.exp
diff -u src/tests/usr.bin/xlint/lint1/msg_169.exp:1.3 src/tests/usr.bin/xlint/lint1/msg_169.exp:1.4
--- src/tests/usr.bin/xlint/lint1/msg_169.exp:1.3	Mon Jan  4 23:47:27 2021
+++ src/tests/usr.bin/xlint/lint1/msg_169.exp	Mon Jan  4 23:50:46 2021
@@ -23,3 +23,4 @@ msg_169.c(126): warning: precedence conf
 msg_169.c(127): warning: precedence confusion possible: parenthesize! [169]
 msg_169.c(131): warning: precedence confusion possible: parenthesize! [169]
 msg_169.c(161): warning: precedence confusion possible: parenthesize! [169]
+msg_169.c(162): warning: precedence confusion possible: parenthesize! [169]

Index: src/usr.bin/xlint/lint1/tree.c
diff -u src/usr.bin/xlint/lint1/tree.c:1.131 src/usr.bin/xlint/lint1/tree.c:1.132
--- src/usr.bin/xlint/lint1/tree.c:1.131	Mon Jan  4 23:47:26 2021
+++ src/usr.bin/xlint/lint1/tree.c	Mon Jan  4 23:50:46 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: tree.c,v 1.131 2021/01/04 23:47:26 rillig Exp $	*/
+/*	$NetBSD: tree.c,v 1.132 2021/01/04 23:50:46 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.131 2021/01/04 23:47:26 rillig Exp $");
+__RCSID("$NetBSD: tree.c,v 1.132 2021/01/04 23:50:46 rillig Exp $");
 #endif
 
 #include <float.h>
@@ -4008,16 +4008,7 @@ check_precedence_confusion(tnode_t *tn)
 
 	if (mp->m_binary) {
 		rparn = 0;
-		/*
-		 * FIXME: There is a typo "tn->tn_op == CVT", which should
-		 * rather be "rn->tn_op".  Since tn must be a binary operator,
-		 * it can never be CVT, so the loop is never taken.
-		 *
-		 * Since the loop is never taken, if the right-hand operand
-		 * is CVT, it is not followed to the actually interesting
-		 * operator.
-		 */
-		for (rn = tn->tn_right; tn->tn_op == CVT; rn = rn->tn_left)
+		for (rn = tn->tn_right; rn->tn_op == CVT; rn = rn->tn_left)
 			rparn |= rn->tn_parenthesized;
 		rparn |= rn->tn_parenthesized;
 		rop = rn->tn_op;

Reply via email to