Module Name: src Committed By: rillig Date: Sat Sep 4 13:27:59 UTC 2021
Modified Files: src/usr.bin/xlint/lint1: decl.c Log Message: lint: use unsigned integers for size calculations No change for type definitions that are smaller than 128 MB. For larger types, integer overflow might occur, just like before. To generate a diff of this commit: cvs rdiff -u -r1.231 -r1.232 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.231 src/usr.bin/xlint/lint1/decl.c:1.232 --- src/usr.bin/xlint/lint1/decl.c:1.231 Sat Sep 4 12:37:46 2021 +++ src/usr.bin/xlint/lint1/decl.c Sat Sep 4 13:27:59 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: decl.c,v 1.231 2021/09/04 12:37:46 rillig Exp $ */ +/* $NetBSD: decl.c,v 1.232 2021/09/04 13:27: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: decl.c,v 1.231 2021/09/04 12:37:46 rillig Exp $"); +__RCSID("$NetBSD: decl.c,v 1.232 2021/09/04 13:27:59 rillig Exp $"); #endif #include <sys/param.h> @@ -913,7 +913,7 @@ end_type(void) int length(const type_t *tp, const char *name) { - int elem, elsz; + unsigned int elem, elsz; elem = 1; while (tp != NULL && tp->t_tspec == ARRAY) { @@ -948,7 +948,7 @@ length(const type_t *tp, const char *nam INTERNAL_ERROR("length(%d)", elsz); break; } - return elem * elsz; + return (int)(elem * elsz); } unsigned int @@ -1136,7 +1136,7 @@ check_bit_field_type(sym_t *dsym, type_ if (!(bitfieldtype_ok || gflag) || !is_integer(t)) { /* illegal bit-field type '%s' */ warning(35, type_name(tp)); - int sz = tp->t_flen; + unsigned int sz = tp->t_flen; dsym->s_type = tp = dup_type(gettyp(t = INT)); if ((tp->t_flen = sz) > size_in_bits(t)) tp->t_flen = size_in_bits(t);