Module Name:    src
Committed By:   rillig
Date:           Wed Jun 30 10:25:03 UTC 2021

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

Log Message:
lint: inline 'sign' into convert_integer

No functional change.


To generate a diff of this commit:
cvs rdiff -u -r1.49 -r1.50 src/usr.bin/xlint/lint1/lex.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/lex.c
diff -u src/usr.bin/xlint/lint1/lex.c:1.49 src/usr.bin/xlint/lint1/lex.c:1.50
--- src/usr.bin/xlint/lint1/lex.c:1.49	Tue Jun 29 21:16:54 2021
+++ src/usr.bin/xlint/lint1/lex.c	Wed Jun 30 10:25:02 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: lex.c,v 1.49 2021/06/29 21:16:54 rillig Exp $ */
+/* $NetBSD: lex.c,v 1.50 2021/06/30 10:25:02 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.49 2021/06/29 21:16:54 rillig Exp $");
+__RCSID("$NetBSD: lex.c,v 1.50 2021/06/30 10:25:02 rillig Exp $");
 #endif
 
 #include <ctype.h>
@@ -678,21 +678,6 @@ lex_integer_constant(const char *yytext,
 	return T_CON;
 }
 
-/*
- * Returns whether t is a signed type and the value is negative.
- *
- * len is the number of significant bits. If len is -1, len is set
- * to the width of type t.
- */
-static bool
-sign(int64_t q, tspec_t t, int len)
-{
-
-	if (t == PTR || is_uinteger(t))
-		return false;
-	return msb(q, t, len) != 0;
-}
-
 int
 msb(int64_t q, tspec_t t, int len)
 {
@@ -704,6 +689,9 @@ msb(int64_t q, tspec_t t, int len)
 
 /*
  * Extend or truncate q to match t.  If t is signed, sign-extend.
+ *
+ * len is the number of significant bits. If len is -1, len is set
+ * to the width of type t.
  */
 int64_t
 convert_integer(int64_t q, tspec_t t, int len)
@@ -714,7 +702,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) || !sign(q, t, len)
+	return t == PTR || is_uinteger(t) || msb(q, t, len) == 0
 	    ? q & vbits
 	    : q | ~vbits;
 }

Reply via email to