Module Name: src Committed By: rillig Date: Sun Jul 9 12:15:07 UTC 2023
Modified Files: src/usr.bin/xlint/common: emit.c src/usr.bin/xlint/lint1: decl.c func.c lex.c lint1.h mem1.c Log Message: lint: miscellaneous cleanup To generate a diff of this commit: cvs rdiff -u -r1.19 -r1.20 src/usr.bin/xlint/common/emit.c cvs rdiff -u -r1.347 -r1.348 src/usr.bin/xlint/lint1/decl.c cvs rdiff -u -r1.166 -r1.167 src/usr.bin/xlint/lint1/func.c cvs rdiff -u -r1.171 -r1.172 src/usr.bin/xlint/lint1/lex.c cvs rdiff -u -r1.181 -r1.182 src/usr.bin/xlint/lint1/lint1.h cvs rdiff -u -r1.66 -r1.67 src/usr.bin/xlint/lint1/mem1.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/common/emit.c diff -u src/usr.bin/xlint/common/emit.c:1.19 src/usr.bin/xlint/common/emit.c:1.20 --- src/usr.bin/xlint/common/emit.c:1.19 Fri Jun 9 13:03:49 2023 +++ src/usr.bin/xlint/common/emit.c Sun Jul 9 12:15:07 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: emit.c,v 1.19 2023/06/09 13:03:49 rillig Exp $ */ +/* $NetBSD: emit.c,v 1.20 2023/07/09 12:15:07 rillig Exp $ */ /* * Copyright (c) 1994, 1995 Jochen Pohl @@ -37,7 +37,7 @@ #include <sys/cdefs.h> #if defined(__RCSID) -__RCSID("$NetBSD: emit.c,v 1.19 2023/06/09 13:03:49 rillig Exp $"); +__RCSID("$NetBSD: emit.c,v 1.20 2023/07/09 12:15:07 rillig Exp $"); #endif #include <stdio.h> @@ -91,12 +91,12 @@ outclose(void) static void outxbuf(void) { - ptrdiff_t coffs; - coffs = ob.o_next - ob.o_buf; + size_t next = (size_t)(ob.o_next - ob.o_buf); ob.o_len *= 2; - ob.o_end = (ob.o_buf = xrealloc(ob.o_buf, ob.o_len)) + ob.o_len; - ob.o_next = ob.o_buf + coffs; + ob.o_buf = xrealloc(ob.o_buf, ob.o_len); + ob.o_end = ob.o_buf + ob.o_len; + ob.o_next = ob.o_buf + next; } /* @@ -106,11 +106,10 @@ outxbuf(void) void outclr(void) { - size_t sz; if (ob.o_buf != ob.o_next) { outchar('\n'); - sz = ob.o_next - ob.o_buf; + size_t sz = (size_t)(ob.o_next - ob.o_buf); if (sz > ob.o_len) errx(1, "internal error: outclr"); if (fwrite(ob.o_buf, sz, 1, lout) != 1) Index: src/usr.bin/xlint/lint1/decl.c diff -u src/usr.bin/xlint/lint1/decl.c:1.347 src/usr.bin/xlint/lint1/decl.c:1.348 --- src/usr.bin/xlint/lint1/decl.c:1.347 Sun Jul 9 11:18:55 2023 +++ src/usr.bin/xlint/lint1/decl.c Sun Jul 9 12:15:07 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: decl.c,v 1.347 2023/07/09 11:18:55 rillig Exp $ */ +/* $NetBSD: decl.c,v 1.348 2023/07/09 12:15:07 rillig Exp $ */ /* * Copyright (c) 1996 Christopher G. Demetriou. All Rights Reserved. @@ -38,7 +38,7 @@ #include <sys/cdefs.h> #if defined(__RCSID) -__RCSID("$NetBSD: decl.c,v 1.347 2023/07/09 11:18:55 rillig Exp $"); +__RCSID("$NetBSD: decl.c,v 1.348 2023/07/09 12:15:07 rillig Exp $"); #endif #include <sys/param.h> @@ -130,6 +130,7 @@ type_t * gettyp(tspec_t t) { + lint_assert((int)t < (int)STRUCT); /* TODO: make the return type 'const' */ return &typetab[t]; } @@ -584,7 +585,7 @@ end_declaration_level(void) symtab_remove_level(dl->d_first_dlsym); break; case DLK_EXTERN: - /* there is nothing around an external declarations */ + /* there is nothing around an external declaration */ /* FALLTHROUGH */ default: lint_assert(/*CONSTCOND*/false); Index: src/usr.bin/xlint/lint1/func.c diff -u src/usr.bin/xlint/lint1/func.c:1.166 src/usr.bin/xlint/lint1/func.c:1.167 --- src/usr.bin/xlint/lint1/func.c:1.166 Sun Jul 9 11:01:27 2023 +++ src/usr.bin/xlint/lint1/func.c Sun Jul 9 12:15:07 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: func.c,v 1.166 2023/07/09 11:01:27 rillig Exp $ */ +/* $NetBSD: func.c,v 1.167 2023/07/09 12:15:07 rillig Exp $ */ /* * Copyright (c) 1994, 1995 Jochen Pohl @@ -37,7 +37,7 @@ #include <sys/cdefs.h> #if defined(__RCSID) -__RCSID("$NetBSD: func.c,v 1.166 2023/07/09 11:01:27 rillig Exp $"); +__RCSID("$NetBSD: func.c,v 1.167 2023/07/09 12:15:07 rillig Exp $"); #endif #include <stdlib.h> @@ -447,15 +447,14 @@ named_label(sym_t *sym) static void check_case_label_bitand(const tnode_t *case_expr, const tnode_t *switch_expr) { - uint64_t case_value, mask; if (switch_expr->tn_op != BITAND || switch_expr->tn_right->tn_op != CON) return; lint_assert(case_expr->tn_op == CON); - case_value = case_expr->tn_val.u.integer; - mask = switch_expr->tn_right->tn_val.u.integer; + uint64_t case_value = (uint64_t)case_expr->tn_val.u.integer; + uint64_t mask = (uint64_t)switch_expr->tn_right->tn_val.u.integer; if ((case_value & ~mask) != 0) { /* statement not reached */ Index: src/usr.bin/xlint/lint1/lex.c diff -u src/usr.bin/xlint/lint1/lex.c:1.171 src/usr.bin/xlint/lint1/lex.c:1.172 --- src/usr.bin/xlint/lint1/lex.c:1.171 Sun Jul 9 11:18:55 2023 +++ src/usr.bin/xlint/lint1/lex.c Sun Jul 9 12:15:07 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: lex.c,v 1.171 2023/07/09 11:18:55 rillig Exp $ */ +/* $NetBSD: lex.c,v 1.172 2023/07/09 12:15:07 rillig Exp $ */ /* * Copyright (c) 1996 Christopher G. Demetriou. All Rights Reserved. @@ -38,7 +38,7 @@ #include <sys/cdefs.h> #if defined(__RCSID) -__RCSID("$NetBSD: lex.c,v 1.171 2023/07/09 11:18:55 rillig Exp $"); +__RCSID("$NetBSD: lex.c,v 1.172 2023/07/09 12:15:07 rillig Exp $"); #endif #include <ctype.h> @@ -615,9 +615,10 @@ convert_integer(int64_t si, tspec_t t, u len = size_in_bits(t); uint64_t vbits = value_bits(len); - return t == PTR || is_uinteger(t) || ((si & bit(len - 1)) == 0) - ? (int64_t)(si & vbits) - : (int64_t)(si | ~vbits); + uint64_t ui = (uint64_t)si; + return t == PTR || is_uinteger(t) || ((ui & bit(len - 1)) == 0) + ? (int64_t)(ui & vbits) + : (int64_t)(ui | ~vbits); } int Index: src/usr.bin/xlint/lint1/lint1.h diff -u src/usr.bin/xlint/lint1/lint1.h:1.181 src/usr.bin/xlint/lint1/lint1.h:1.182 --- src/usr.bin/xlint/lint1/lint1.h:1.181 Mon Jul 3 07:19:57 2023 +++ src/usr.bin/xlint/lint1/lint1.h Sun Jul 9 12:15:07 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: lint1.h,v 1.181 2023/07/03 07:19:57 rillig Exp $ */ +/* $NetBSD: lint1.h,v 1.182 2023/07/09 12:15:07 rillig Exp $ */ /* * Copyright (c) 1996 Christopher G. Demetriou. All Rights Reserved. @@ -574,7 +574,7 @@ bit(unsigned i) static inline bool msb(int64_t si, tspec_t t) { - return (si & bit(size_in_bits(t) - 1)) != 0; + return ((uint64_t)si & bit(size_in_bits(t) - 1)) != 0; } static inline uint64_t Index: src/usr.bin/xlint/lint1/mem1.c diff -u src/usr.bin/xlint/lint1/mem1.c:1.66 src/usr.bin/xlint/lint1/mem1.c:1.67 --- src/usr.bin/xlint/lint1/mem1.c:1.66 Fri Jun 30 12:21:25 2023 +++ src/usr.bin/xlint/lint1/mem1.c Sun Jul 9 12:15:07 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: mem1.c,v 1.66 2023/06/30 12:21:25 rillig Exp $ */ +/* $NetBSD: mem1.c,v 1.67 2023/07/09 12:15:07 rillig Exp $ */ /* * Copyright (c) 1994, 1995 Jochen Pohl @@ -37,7 +37,7 @@ #include <sys/cdefs.h> #if defined(__RCSID) -__RCSID("$NetBSD: mem1.c,v 1.66 2023/06/30 12:21:25 rillig Exp $"); +__RCSID("$NetBSD: mem1.c,v 1.67 2023/07/09 12:15:07 rillig Exp $"); #endif #include <sys/param.h> @@ -93,7 +93,7 @@ add_directory_replacement(char *arg) *sep = '\0'; r->orig = arg; - r->orig_len = sep - arg; + r->orig_len = (size_t)(sep - arg); r->repl = sep + 1; r->next = filename_replacements; filename_replacements = r;