Module Name: src Committed By: rillig Date: Sat Aug 28 12:41:03 UTC 2021
Modified Files: src/usr.bin/xlint/lint1: decl.c externs1.h lint1.h Log Message: lint: fix a few lint warnings about type conversions A simple 'unsigned int' is more than enough for representing the size of a bit-field, as well as the maximum alignment of any type. No functional change. To generate a diff of this commit: cvs rdiff -u -r1.224 -r1.225 src/usr.bin/xlint/lint1/decl.c cvs rdiff -u -r1.132 -r1.133 src/usr.bin/xlint/lint1/externs1.h cvs rdiff -u -r1.126 -r1.127 src/usr.bin/xlint/lint1/lint1.h 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.224 src/usr.bin/xlint/lint1/decl.c:1.225 --- src/usr.bin/xlint/lint1/decl.c:1.224 Sat Aug 28 12:21:53 2021 +++ src/usr.bin/xlint/lint1/decl.c Sat Aug 28 12:41:03 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: decl.c,v 1.224 2021/08/28 12:21:53 rillig Exp $ */ +/* $NetBSD: decl.c,v 1.225 2021/08/28 12:41:03 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.224 2021/08/28 12:21:53 rillig Exp $"); +__RCSID("$NetBSD: decl.c,v 1.225 2021/08/28 12:41:03 rillig Exp $"); #endif #include <sys/param.h> @@ -552,15 +552,15 @@ settdsym(type_t *tp, sym_t *sym) } } -static size_t +static unsigned int bitfieldsize(sym_t **mem) { - size_t len = (*mem)->s_type->t_flen; + unsigned int len = (*mem)->s_type->t_flen; while (*mem != NULL && (*mem)->s_type->t_bitfield) { len += (*mem)->s_type->t_flen; *mem = (*mem)->s_next; } - return ((len + INT_SIZE - 1) / INT_SIZE) * INT_SIZE; + return len - len % INT_SIZE; } static void @@ -951,7 +951,7 @@ length(const type_t *tp, const char *nam return elem * elsz; } -int +unsigned int alignment_in_bits(const type_t *tp) { size_t a; @@ -1807,6 +1807,7 @@ storage_class_name(scl_t sc) case ENUM_TAG: return "enum"; default: lint_assert(/*CONSTCOND*/false); } + /* NOTREACHED */ } /* @@ -1826,7 +1827,7 @@ complete_tag_struct_or_union(type_t *tp, setcomplete(tp, true); t = tp->t_tspec; - align(dcs->d_sou_align_in_bits, 0); + align((u_int)dcs->d_sou_align_in_bits, 0); sp = tp->t_str; sp->sou_align_in_bits = dcs->d_sou_align_in_bits; sp->sou_first_member = fmem; @@ -1850,7 +1851,8 @@ complete_tag_struct_or_union(type_t *tp, if (mem == NULL) break; } - sp->sou_size_in_bits += type_size_in_bits(mem->s_type); + sp->sou_size_in_bits += + (u_int)type_size_in_bits(mem->s_type); } if (mem->s_name != unnamed) n++; Index: src/usr.bin/xlint/lint1/externs1.h diff -u src/usr.bin/xlint/lint1/externs1.h:1.132 src/usr.bin/xlint/lint1/externs1.h:1.133 --- src/usr.bin/xlint/lint1/externs1.h:1.132 Mon Aug 23 06:26:37 2021 +++ src/usr.bin/xlint/lint1/externs1.h Sat Aug 28 12:41:03 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: externs1.h,v 1.132 2021/08/23 06:26:37 rillig Exp $ */ +/* $NetBSD: externs1.h,v 1.133 2021/08/28 12:41:03 rillig Exp $ */ /* * Copyright (c) 1994, 1995 Jochen Pohl @@ -187,7 +187,7 @@ extern void setasm(void); extern void begin_type(void); extern void end_type(void); extern int length(const type_t *, const char *); -extern int alignment_in_bits(const type_t *); +extern unsigned int alignment_in_bits(const type_t *); extern sym_t *lnklst(sym_t *, sym_t *); extern void check_type(sym_t *); extern sym_t *declarator_1_struct_union(sym_t *); Index: src/usr.bin/xlint/lint1/lint1.h diff -u src/usr.bin/xlint/lint1/lint1.h:1.126 src/usr.bin/xlint/lint1/lint1.h:1.127 --- src/usr.bin/xlint/lint1/lint1.h:1.126 Sat Aug 28 12:21:53 2021 +++ src/usr.bin/xlint/lint1/lint1.h Sat Aug 28 12:41:03 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: lint1.h,v 1.126 2021/08/28 12:21:53 rillig Exp $ */ +/* $NetBSD: lint1.h,v 1.127 2021/08/28 12:41:03 rillig Exp $ */ /* * Copyright (c) 1996 Christopher G. Demetriou. All Rights Reserved. @@ -575,7 +575,7 @@ bit(unsigned i) static inline bool msb(int64_t q, tspec_t t) { - return (q & bit(size_in_bits(t) - 1)) != 0; + return (q & bit((unsigned int)size_in_bits(t) - 1)) != 0; } static inline uint64_t