Module Name:    src
Committed By:   rillig
Date:           Mon Aug 23 06:21:59 UTC 2021

Modified Files:
        src/usr.bin/xlint/lint1: emit1.c externs1.h lex.c tree.c

Log Message:
lint: remove unnecessary width parameter for msb

No functional change.


To generate a diff of this commit:
cvs rdiff -u -r1.49 -r1.50 src/usr.bin/xlint/lint1/emit1.c
cvs rdiff -u -r1.130 -r1.131 src/usr.bin/xlint/lint1/externs1.h
cvs rdiff -u -r1.67 -r1.68 src/usr.bin/xlint/lint1/lex.c
cvs rdiff -u -r1.347 -r1.348 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/emit1.c
diff -u src/usr.bin/xlint/lint1/emit1.c:1.49 src/usr.bin/xlint/lint1/emit1.c:1.50
--- src/usr.bin/xlint/lint1/emit1.c:1.49	Thu Aug 19 21:13:58 2021
+++ src/usr.bin/xlint/lint1/emit1.c	Mon Aug 23 06:21:59 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: emit1.c,v 1.49 2021/08/19 21:13:58 rillig Exp $ */
+/* $NetBSD: emit1.c,v 1.50 2021/08/23 06:21:59 rillig Exp $ */
 
 /*
  * Copyright (c) 1996 Christopher G. Demetriou.  All Rights Reserved.
@@ -38,7 +38,7 @@
 
 #include <sys/cdefs.h>
 #if defined(__RCSID) && !defined(lint)
-__RCSID("$NetBSD: emit1.c,v 1.49 2021/08/19 21:13:58 rillig Exp $");
+__RCSID("$NetBSD: emit1.c,v 1.50 2021/08/23 06:21:59 rillig Exp $");
 #endif
 
 #include "lint1.h"
@@ -415,7 +415,7 @@ outcall(const tnode_t *tn, bool rvused, 
 				if ((q = arg->tn_val->v_quad) == 0) {
 					/* zero constant */
 					outchar('z');
-				} else if (!msb(q, t, 0)) {
+				} else if (!msb(q, t)) {
 					/* positive if cast to signed */
 					outchar('p');
 				} else {

Index: src/usr.bin/xlint/lint1/externs1.h
diff -u src/usr.bin/xlint/lint1/externs1.h:1.130 src/usr.bin/xlint/lint1/externs1.h:1.131
--- src/usr.bin/xlint/lint1/externs1.h:1.130	Sun Aug 22 14:50:06 2021
+++ src/usr.bin/xlint/lint1/externs1.h	Mon Aug 23 06:21:59 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: externs1.h,v 1.130 2021/08/22 14:50:06 rillig Exp $	*/
+/*	$NetBSD: externs1.h,v 1.131 2021/08/23 06:21:59 rillig Exp $	*/
 
 /*
  * Copyright (c) 1994, 1995 Jochen Pohl
@@ -78,7 +78,7 @@ extern	symt_t	symtyp;
 extern	FILE	*yyin;
 
 extern	void	initscan(void);
-extern	bool	msb(int64_t, tspec_t, int);
+extern	bool	msb(int64_t, tspec_t);
 extern	int64_t	convert_integer(int64_t, tspec_t, int);
 extern	void	clear_warn_flags(void);
 extern	sym_t	*getsym(sbuf_t *);

Index: src/usr.bin/xlint/lint1/lex.c
diff -u src/usr.bin/xlint/lint1/lex.c:1.67 src/usr.bin/xlint/lint1/lex.c:1.68
--- src/usr.bin/xlint/lint1/lex.c:1.67	Sun Aug 22 13:12:39 2021
+++ src/usr.bin/xlint/lint1/lex.c	Mon Aug 23 06:21:59 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: lex.c,v 1.67 2021/08/22 13:12:39 rillig Exp $ */
+/* $NetBSD: lex.c,v 1.68 2021/08/23 06:21:59 rillig Exp $ */
 
 /*
  * Copyright (c) 1996 Christopher G. Demetriou.  All Rights Reserved.
@@ -38,7 +38,7 @@
 
 #include <sys/cdefs.h>
 #if defined(__RCSID) && !defined(lint)
-__RCSID("$NetBSD: lex.c,v 1.67 2021/08/22 13:12:39 rillig Exp $");
+__RCSID("$NetBSD: lex.c,v 1.68 2021/08/23 06:21:59 rillig Exp $");
 #endif
 
 #include <ctype.h>
@@ -673,12 +673,10 @@ lex_integer_constant(const char *yytext,
 }
 
 bool
-msb(int64_t q, tspec_t t, int len)
+msb(int64_t q, tspec_t t)
 {
 
-	if (len <= 0)
-		len = size_in_bits(t);
-	return (q & bit(len - 1)) != 0;
+	return (q & bit(size_in_bits(t) - 1)) != 0;
 }
 
 /*
@@ -696,7 +694,7 @@ convert_integer(int64_t q, tspec_t t, in
 		len = size_in_bits(t);
 
 	vbits = value_bits(len);
-	return t == PTR || is_uinteger(t) || !msb(q, t, len)
+	return t == PTR || is_uinteger(t) || ((q & bit(len - 1)) == 0)
 	    ? (int64_t)(q & vbits)
 	    : (int64_t)(q | ~vbits);
 }

Index: src/usr.bin/xlint/lint1/tree.c
diff -u src/usr.bin/xlint/lint1/tree.c:1.347 src/usr.bin/xlint/lint1/tree.c:1.348
--- src/usr.bin/xlint/lint1/tree.c:1.347	Mon Aug 23 06:10:26 2021
+++ src/usr.bin/xlint/lint1/tree.c	Mon Aug 23 06:21:59 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: tree.c,v 1.347 2021/08/23 06:10:26 rillig Exp $	*/
+/*	$NetBSD: tree.c,v 1.348 2021/08/23 06:21:59 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.347 2021/08/23 06:10:26 rillig Exp $");
+__RCSID("$NetBSD: tree.c,v 1.348 2021/08/23 06:21:59 rillig Exp $");
 #endif
 
 #include <float.h>
@@ -1979,7 +1979,7 @@ check_prototype_conversion_integer(const
 	 */
 	if (ptn->tn_op == CON && is_integer(nt) &&
 	    signed_type(nt) == signed_type(ot) &&
-	    !msb(ptn->tn_val->v_quad, ot, -1))
+	    !msb(ptn->tn_val->v_quad, ot))
 		return;
 
 	/* argument #%d is converted from '%s' to '%s' ... */
@@ -3045,7 +3045,7 @@ fold(tnode_t *tn)
 		break;
 	case UMINUS:
 		q = -sl;
-		if (sl != 0 && msb(q, t, -1) == msb(sl, t, -1))
+		if (sl != 0 && msb(q, t) == msb(sl, t))
 			ovfl = true;
 		break;
 	case COMPL:
@@ -3060,7 +3060,7 @@ fold(tnode_t *tn)
 				ovfl = true;
 		} else {
 			q = sl * sr;
-			if (msb(q, t, -1) != (msb(sl, t, -1) ^ msb(sr, t, -1)))
+			if (msb(q, t) != (msb(sl, t) ^ msb(sr, t)))
 				ovfl = true;
 		}
 		break;
@@ -3084,20 +3084,19 @@ fold(tnode_t *tn)
 		break;
 	case PLUS:
 		q = utyp ? (int64_t)(ul + ur) : sl + sr;
-		if (msb(sl, t, -1) && msb(sr, t, -1)) {
-			if (!msb(q, t, -1))
+		if (msb(sl, t) && msb(sr, t)) {
+			if (!msb(q, t))
 				ovfl = true;
-		} else if (!msb(sl, t, -1) && !msb(sr, t, -1)) {
-			if (msb(q, t, -1) && !utyp)
+		} else if (!msb(sl, t) && !msb(sr, t)) {
+			if (msb(q, t) && !utyp)
 				ovfl = true;
 		}
 		break;
 	case MINUS:
 		q = utyp ? (int64_t)(ul - ur) : sl - sr;
-		if (!utyp &&
-		    msb(sl, t, -1) && !msb(sr, t, -1) && !msb(q, t, -1))
+		if (!utyp && msb(sl, t) && !msb(sr, t) && !msb(q, t))
 			ovfl = true;
-		if (!msb(sl, t, -1) && msb(sr, t, -1) && msb(q, t, -1))
+		if (!msb(sl, t) && msb(sr, t) && msb(q, t))
 			ovfl = true;
 		break;
 	case SHL:

Reply via email to