Module Name:    src
Committed By:   rillig
Date:           Fri Apr 15 17:08:21 UTC 2022

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

Log Message:
lint: merge conditions in check_integer_conversion

No functional change.


To generate a diff of this commit:
cvs rdiff -u -r1.425 -r1.426 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.425 src/usr.bin/xlint/lint1/tree.c:1.426
--- src/usr.bin/xlint/lint1/tree.c:1.425	Fri Apr 15 16:38:30 2022
+++ src/usr.bin/xlint/lint1/tree.c	Fri Apr 15 17:08:21 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: tree.c,v 1.425 2022/04/15 16:38:30 rillig Exp $	*/
+/*	$NetBSD: tree.c,v 1.426 2022/04/15 17:08:21 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.425 2022/04/15 16:38:30 rillig Exp $");
+__RCSID("$NetBSD: tree.c,v 1.426 2022/04/15 17:08:21 rillig Exp $");
 #endif
 
 #include <float.h>
@@ -2198,32 +2198,24 @@ check_integer_conversion(op_t op, int ar
 	if (Sflag && nt == BOOL)
 		return;		/* See C99 6.3.1.2 */
 
-	if (Pflag && portable_size_in_bits(nt) > portable_size_in_bits(ot) &&
+	if (Pflag && pflag && aflag > 0 &&
+	    portable_size_in_bits(nt) > portable_size_in_bits(ot) &&
 	    is_uinteger(nt) != is_uinteger(ot)) {
-		if (aflag > 0 && pflag) {
-			if (op == FARG) {
-				/* conversion to '%s' may sign-extend ... */
-				warning(297, type_name(tp), arg);
-			} else {
-				/* conversion to '%s' may sign-extend ... */
-				warning(131, type_name(tp));
-			}
+		if (op == FARG) {
+			/* conversion to '%s' may sign-extend ... */
+			warning(297, type_name(tp), arg);
+		} else {
+			/* conversion to '%s' may sign-extend ... */
+			warning(131, type_name(tp));
 		}
 	}
 
-	if (Pflag && portable_size_in_bits(nt) > portable_size_in_bits(ot)) {
-		switch (tn->tn_op) {
-		case PLUS:
-		case MINUS:
-		case MULT:
-		case SHL:
-			/* suggest cast from '%s' to '%s' on op %s to ... */
-			warning(324, type_name(gettyp(ot)), type_name(tp),
-			    op_name(tn->tn_op));
-			break;
-		default:
-			break;
-		}
+	if (Pflag && portable_size_in_bits(nt) > portable_size_in_bits(ot) &&
+	    (tn->tn_op == PLUS || tn->tn_op == MINUS || tn->tn_op == MULT ||
+	     tn->tn_op == SHL)) {
+		/* suggest cast from '%s' to '%s' on op %s to ... */
+		warning(324, type_name(gettyp(ot)), type_name(tp),
+		    op_name(tn->tn_op));
 	}
 
 	if (aflag > 0 &&

Reply via email to