Module Name:    src
Committed By:   rillig
Date:           Tue Aug 10 19:52:14 UTC 2021

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

Log Message:
lint: remove redundant test for negative bit-field size

A bit-field can never have negative size.  Its type is an unsigned
integer.

Strangely, GCC 10.3.0 only complains about this if the extra struct
level lint1_type.t_b is removed.  Clang 12.0.1 does not complain at all.


To generate a diff of this commit:
cvs rdiff -u -r1.219 -r1.220 src/usr.bin/xlint/lint1/decl.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/decl.c
diff -u src/usr.bin/xlint/lint1/decl.c:1.219 src/usr.bin/xlint/lint1/decl.c:1.220
--- src/usr.bin/xlint/lint1/decl.c:1.219	Tue Aug  3 21:18:24 2021
+++ src/usr.bin/xlint/lint1/decl.c	Tue Aug 10 19:52:14 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: decl.c,v 1.219 2021/08/03 21:18:24 rillig Exp $ */
+/* $NetBSD: decl.c,v 1.220 2021/08/10 19:52:14 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: decl.c,v 1.219 2021/08/03 21:18:24 rillig Exp $");
+__RCSID("$NetBSD: decl.c,v 1.220 2021/08/10 19:52:14 rillig Exp $");
 #endif
 
 #include <sys/param.h>
@@ -1151,7 +1151,7 @@ declare_bit_field(sym_t *dsym, tspec_t *
 
 	type_t *const tp = *inout_tp;
 	tspec_t const t = *inout_t;
-	if (tp->t_flen < 0 || tp->t_flen > (ssize_t)size_in_bits(t)) {
+	if (tp->t_flen > size_in_bits(t)) {
 		/* illegal bit-field size: %d */
 		error(36, tp->t_flen);
 		tp->t_flen = size_in_bits(t);

Reply via email to