Module Name:    src
Committed By:   rillig
Date:           Sat Aug 28 13:11:10 UTC 2021

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

Log Message:
lint: use 'unsigned int' for bit-size of types in convert_integer

There was no need to have two separate magic values (0 and -1) to mean
the same.

No functional change.


To generate a diff of this commit:
cvs rdiff -u -r1.134 -r1.135 src/usr.bin/xlint/lint1/externs1.h
cvs rdiff -u -r1.71 -r1.72 src/usr.bin/xlint/lint1/lex.c
cvs rdiff -u -r1.355 -r1.356 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/externs1.h
diff -u src/usr.bin/xlint/lint1/externs1.h:1.134 src/usr.bin/xlint/lint1/externs1.h:1.135
--- src/usr.bin/xlint/lint1/externs1.h:1.134	Sat Aug 28 12:59:25 2021
+++ src/usr.bin/xlint/lint1/externs1.h	Sat Aug 28 13:11:10 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: externs1.h,v 1.134 2021/08/28 12:59:25 rillig Exp $	*/
+/*	$NetBSD: externs1.h,v 1.135 2021/08/28 13:11:10 rillig Exp $	*/
 
 /*
  * Copyright (c) 1994, 1995 Jochen Pohl
@@ -78,7 +78,7 @@ extern	symt_t	symtyp;
 extern	FILE	*yyin;
 
 extern	void	initscan(void);
-extern	int64_t	convert_integer(int64_t, tspec_t, int);
+extern	int64_t	convert_integer(int64_t, tspec_t, unsigned int);
 extern	void	clear_warn_flags(void);
 extern	sym_t	*getsym(sbuf_t *);
 extern	void	cleanup(void);

Index: src/usr.bin/xlint/lint1/lex.c
diff -u src/usr.bin/xlint/lint1/lex.c:1.71 src/usr.bin/xlint/lint1/lex.c:1.72
--- src/usr.bin/xlint/lint1/lex.c:1.71	Sat Aug 28 12:21:53 2021
+++ src/usr.bin/xlint/lint1/lex.c	Sat Aug 28 13:11:10 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: lex.c,v 1.71 2021/08/28 12:21:53 rillig Exp $ */
+/* $NetBSD: lex.c,v 1.72 2021/08/28 13:11:10 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.71 2021/08/28 12:21:53 rillig Exp $");
+__RCSID("$NetBSD: lex.c,v 1.72 2021/08/28 13:11:10 rillig Exp $");
 #endif
 
 #include <ctype.h>
@@ -52,7 +52,7 @@ __RCSID("$NetBSD: lex.c,v 1.71 2021/08/2
 #include "lint1.h"
 #include "cgram.h"
 
-#define CHAR_MASK	((int)(~(~0U << CHAR_SIZE)))
+#define CHAR_MASK	((1U << CHAR_SIZE) - 1)
 
 
 /* Current position (it's also updated when an included file is parsed) */
@@ -504,7 +504,7 @@ int
 lex_integer_constant(const char *yytext, size_t yyleng, int base)
 {
 	int	l_suffix, u_suffix;
-	int	len;
+	size_t	len;
 	const	char *cp;
 	char	c, *eptr;
 	tspec_t	typ;
@@ -663,7 +663,7 @@ lex_integer_constant(const char *yytext,
 		break;
 	}
 
-	uq = (uint64_t)convert_integer((int64_t)uq, typ, -1);
+	uq = (uint64_t)convert_integer((int64_t)uq, typ, 0);
 
 	yylval.y_val = xcalloc(1, sizeof(*yylval.y_val));
 	yylval.y_val->v_tspec = typ;
@@ -680,11 +680,11 @@ lex_integer_constant(const char *yytext,
  * to the width of type t.
  */
 int64_t
-convert_integer(int64_t q, tspec_t t, int len)
+convert_integer(int64_t q, tspec_t t, unsigned int len)
 {
 	uint64_t vbits;
 
-	if (len <= 0)
+	if (len == 0)
 		len = size_in_bits(t);
 
 	vbits = value_bits(len);

Index: src/usr.bin/xlint/lint1/tree.c
diff -u src/usr.bin/xlint/lint1/tree.c:1.355 src/usr.bin/xlint/lint1/tree.c:1.356
--- src/usr.bin/xlint/lint1/tree.c:1.355	Sat Aug 28 12:59:25 2021
+++ src/usr.bin/xlint/lint1/tree.c	Sat Aug 28 13:11:10 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: tree.c,v 1.355 2021/08/28 12:59:25 rillig Exp $	*/
+/*	$NetBSD: tree.c,v 1.356 2021/08/28 13:11: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.355 2021/08/28 12:59:25 rillig Exp $");
+__RCSID("$NetBSD: tree.c,v 1.356 2021/08/28 13:11:10 rillig Exp $");
 #endif
 
 #include <float.h>
@@ -3145,7 +3145,7 @@ fold(tnode_t *tn)
 			warning(141, op_name(tn->tn_op));
 	}
 
-	v->v_quad = convert_integer(q, t, -1);
+	v->v_quad = convert_integer(q, t, 0);
 
 	cn = build_constant(tn->tn_type, v);
 	if (tn->tn_left->tn_system_dependent)

Reply via email to