Module Name:    src
Committed By:   christos
Date:           Wed Apr 15 01:20:57 UTC 2009

Modified Files:
        src/usr.bin/xlint/common: emit.c inittyp.c lint.h
        src/usr.bin/xlint/lint1: decl.c err.c externs1.h mem1.c scan.l tree.c
        src/usr.bin/xlint/lint2: hash.c read.c
        src/usr.bin/xlint/xlint: xlint.c

Log Message:
Lukemify (WARNS=4)


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 src/usr.bin/xlint/common/emit.c
cvs rdiff -u -r1.10 -r1.11 src/usr.bin/xlint/common/inittyp.c
cvs rdiff -u -r1.12 -r1.13 src/usr.bin/xlint/common/lint.h
cvs rdiff -u -r1.45 -r1.46 src/usr.bin/xlint/lint1/decl.c
cvs rdiff -u -r1.39 -r1.40 src/usr.bin/xlint/lint1/err.c
cvs rdiff -u -r1.25 -r1.26 src/usr.bin/xlint/lint1/externs1.h
cvs rdiff -u -r1.11 -r1.12 src/usr.bin/xlint/lint1/mem1.c
cvs rdiff -u -r1.42 -r1.43 src/usr.bin/xlint/lint1/scan.l
cvs rdiff -u -r1.56 -r1.57 src/usr.bin/xlint/lint1/tree.c
cvs rdiff -u -r1.10 -r1.11 src/usr.bin/xlint/lint2/hash.c
cvs rdiff -u -r1.24 -r1.25 src/usr.bin/xlint/lint2/read.c
cvs rdiff -u -r1.41 -r1.42 src/usr.bin/xlint/xlint/xlint.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.4 src/usr.bin/xlint/common/emit.c:1.5
--- src/usr.bin/xlint/common/emit.c:1.4	Sun Jun 20 18:20:16 2004
+++ src/usr.bin/xlint/common/emit.c	Tue Apr 14 21:20:57 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: emit.c,v 1.4 2004/06/20 22:20:16 jmc Exp $	*/
+/*	$NetBSD: emit.c,v 1.5 2009/04/15 01:20:57 christos Exp $	*/
 
 /*
  * Copyright (c) 1994, 1995 Jochen Pohl
@@ -37,7 +37,7 @@
 
 #include <sys/cdefs.h>
 #if defined(__RCSID) && !defined(lint)
-__RCSID("$NetBSD: emit.c,v 1.4 2004/06/20 22:20:16 jmc Exp $");
+__RCSID("$NetBSD: emit.c,v 1.5 2009/04/15 01:20:57 christos Exp $");
 #endif
 
 #include <ctype.h>
@@ -206,7 +206,7 @@
 outint(int i)
 {
 
-	if ((ob.o_end - ob.o_nxt) < 3 * sizeof (int))
+	if ((size_t)(ob.o_end - ob.o_nxt) < 3 * sizeof (int))
 		outxbuf();
 	ob.o_nxt += sprintf(ob.o_nxt, "%d", i);
 }

Index: src/usr.bin/xlint/common/inittyp.c
diff -u src/usr.bin/xlint/common/inittyp.c:1.10 src/usr.bin/xlint/common/inittyp.c:1.11
--- src/usr.bin/xlint/common/inittyp.c:1.10	Fri Sep 26 18:52:24 2008
+++ src/usr.bin/xlint/common/inittyp.c	Tue Apr 14 21:20:57 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: inittyp.c,v 1.10 2008/09/26 22:52:24 matt Exp $	*/
+/*	$NetBSD: inittyp.c,v 1.11 2009/04/15 01:20:57 christos Exp $	*/
 
 /*
  * Copyright (c) 1994, 1995 Jochen Pohl
@@ -37,7 +37,7 @@
 
 #include <sys/cdefs.h>
 #if defined(__RCSID) && !defined(lint)
-__RCSID("$NetBSD: inittyp.c,v 1.10 2008/09/26 22:52:24 matt Exp $");
+__RCSID("$NetBSD: inittyp.c,v 1.11 2009/04/15 01:20:57 christos Exp $");
 #endif
 
 #include <limits.h>
@@ -57,7 +57,7 @@
 void
 inittyp(void)
 {
-	int	i;
+	size_t	i;
 	static const struct {
 		tspec_t	it_tspec;
 		ttab_t	it_ttab;

Index: src/usr.bin/xlint/common/lint.h
diff -u src/usr.bin/xlint/common/lint.h:1.12 src/usr.bin/xlint/common/lint.h:1.13
--- src/usr.bin/xlint/common/lint.h:1.12	Fri Sep 26 18:52:24 2008
+++ src/usr.bin/xlint/common/lint.h	Tue Apr 14 21:20:57 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: lint.h,v 1.12 2008/09/26 22:52:24 matt Exp $	*/
+/*	$NetBSD: lint.h,v 1.13 2009/04/15 01:20:57 christos Exp $	*/
 
 /*
  * Copyright (c) 1994, 1995 Jochen Pohl
@@ -85,8 +85,8 @@
  * size of types, name and classification
  */
 typedef	struct {
-	int	tt_sz;			/* size in bits */
-	int	tt_psz;			/* size, different from tt_sz
+	size_t	tt_sz;			/* size in bits */
+	size_t	tt_psz;			/* size, different from tt_sz
 					   if pflag is set */
 	tspec_t	tt_styp;		/* signed counterpart */
 	tspec_t	tt_utyp;		/* unsigned counterpart */

Index: src/usr.bin/xlint/lint1/decl.c
diff -u src/usr.bin/xlint/lint1/decl.c:1.45 src/usr.bin/xlint/lint1/decl.c:1.46
--- src/usr.bin/xlint/lint1/decl.c:1.45	Mon Mar  2 15:53:10 2009
+++ src/usr.bin/xlint/lint1/decl.c	Tue Apr 14 21:20:57 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: decl.c,v 1.45 2009/03/02 20:53:10 christos Exp $ */
+/* $NetBSD: decl.c,v 1.46 2009/04/15 01:20:57 christos 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.45 2009/03/02 20:53:10 christos Exp $");
+__RCSID("$NetBSD: decl.c,v 1.46 2009/04/15 01:20:57 christos Exp $");
 #endif
 
 #include <sys/param.h>
@@ -863,7 +863,7 @@
 int
 getbound(type_t *tp)
 {
-	int	a;
+	size_t	a;
 	tspec_t	t;
 
 	while (tp && tp->t_tspec == ARRAY)
@@ -1079,7 +1079,7 @@
 					tp->t_flen = size(t);
 			}
 		}
-		if ((len = tp->t_flen) < 0 || len > size(t)) {
+		if ((len = tp->t_flen) < 0 || len > (ssize_t)size(t)) {
 			/* illegal bit-field size */
 			error(36);
 			tp->t_flen = size(t);

Index: src/usr.bin/xlint/lint1/err.c
diff -u src/usr.bin/xlint/lint1/err.c:1.39 src/usr.bin/xlint/lint1/err.c:1.40
--- src/usr.bin/xlint/lint1/err.c:1.39	Mon Apr 13 17:17:37 2009
+++ src/usr.bin/xlint/lint1/err.c	Tue Apr 14 21:20:57 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: err.c,v 1.39 2009/04/13 21:17:37 christos Exp $	*/
+/*	$NetBSD: err.c,v 1.40 2009/04/15 01:20:57 christos Exp $	*/
 
 /*
  * Copyright (c) 1994, 1995 Jochen Pohl
@@ -37,7 +37,7 @@
 
 #include <sys/cdefs.h>
 #if defined(__RCSID) && !defined(lint)
-__RCSID("$NetBSD: err.c,v 1.39 2009/04/13 21:17:37 christos Exp $");
+__RCSID("$NetBSD: err.c,v 1.40 2009/04/15 01:20:57 christos Exp $");
 #endif
 
 #include <sys/types.h>
@@ -392,10 +392,10 @@
 void
 msglist(void)
 {
-	int i;
+	size_t i;
 
 	for (i = 0; i < sizeof(msgs) / sizeof(msgs[0]); i++)
-		printf("%d\t%s\n", i, msgs[i]);
+		printf("%zu\t%s\n", i, msgs[i]);
 }
 
 /*

Index: src/usr.bin/xlint/lint1/externs1.h
diff -u src/usr.bin/xlint/lint1/externs1.h:1.25 src/usr.bin/xlint/lint1/externs1.h:1.26
--- src/usr.bin/xlint/lint1/externs1.h:1.25	Mon Mar  2 15:53:10 2009
+++ src/usr.bin/xlint/lint1/externs1.h	Tue Apr 14 21:20:57 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: externs1.h,v 1.25 2009/03/02 20:53:10 christos Exp $	*/
+/*	$NetBSD: externs1.h,v 1.26 2009/04/15 01:20:57 christos Exp $	*/
 
 /*
  * Copyright (c) 1994, 1995 Jochen Pohl
@@ -99,7 +99,7 @@
 extern	void	initmem(void);
 
 extern	void	*getblk(size_t);
-extern	void	*getlblk(int, size_t);
+extern	void	*getlblk(size_t, size_t);
 extern	void	freeblk(void);
 extern	void	freelblk(int);
 

Index: src/usr.bin/xlint/lint1/mem1.c
diff -u src/usr.bin/xlint/lint1/mem1.c:1.11 src/usr.bin/xlint/lint1/mem1.c:1.12
--- src/usr.bin/xlint/lint1/mem1.c:1.11	Sun Jun 20 18:20:17 2004
+++ src/usr.bin/xlint/lint1/mem1.c	Tue Apr 14 21:20:57 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: mem1.c,v 1.11 2004/06/20 22:20:17 jmc Exp $	*/
+/*	$NetBSD: mem1.c,v 1.12 2009/04/15 01:20:57 christos Exp $	*/
 
 /*
  * Copyright (c) 1994, 1995 Jochen Pohl
@@ -37,7 +37,7 @@
 
 #include <sys/cdefs.h>
 #if defined(__RCSID) && !defined(lint)
-__RCSID("$NetBSD: mem1.c,v 1.11 2004/06/20 22:20:17 jmc Exp $");
+__RCSID("$NetBSD: mem1.c,v 1.12 2009/04/15 01:20:57 christos Exp $");
 #endif
 
 #include <sys/types.h>
@@ -250,7 +250,7 @@
  * Allocate memory associated with level l.
  */
 void *
-getlblk(int l, size_t s)
+getlblk(size_t l, size_t s)
 {
 
 	while (l >= nmblks) {

Index: src/usr.bin/xlint/lint1/scan.l
diff -u src/usr.bin/xlint/lint1/scan.l:1.42 src/usr.bin/xlint/lint1/scan.l:1.43
--- src/usr.bin/xlint/lint1/scan.l:1.42	Wed Dec 10 11:12:39 2008
+++ src/usr.bin/xlint/lint1/scan.l	Tue Apr 14 21:20:57 2009
@@ -1,5 +1,5 @@
 %{
-/* $NetBSD: scan.l,v 1.42 2008/12/10 16:12:39 joerg Exp $ */
+/* $NetBSD: scan.l,v 1.43 2009/04/15 01:20:57 christos Exp $ */
 
 /*
  * Copyright (c) 1996 Christopher G. Demetriou.  All Rights Reserved.
@@ -35,7 +35,7 @@
 
 #include <sys/cdefs.h>
 #if defined(__RCSID) && !defined(lint)
-__RCSID("$NetBSD: scan.l,v 1.42 2008/12/10 16:12:39 joerg Exp $");
+__RCSID("$NetBSD: scan.l,v 1.43 2009/04/15 01:20:57 christos Exp $");
 #endif
 
 #include <stdlib.h>
@@ -274,7 +274,7 @@
 {
 	struct	kwtab *kw;
 	sym_t	*sym;
-	int	h, i;
+	size_t	h, i;
 	uint64_t uq;
 
 	for (kw = kwtab; kw->kw_name != NULL; kw++) {
@@ -761,7 +761,8 @@
 static int
 ccon(void)
 {
-	int	n, val, c;
+	size_t	n;
+	int val, c;
 	char	cv;
 
 	n = 0;
@@ -804,7 +805,8 @@
 wccon(void)
 {
 	static	char buf[MB_LEN_MAX + 1];
-	int	i, c;
+	size_t	i;
+	int c;
 	wchar_t	wc;
 
 	i = 0;
@@ -1098,7 +1100,8 @@
 	};
 	char	keywd[32];
 	char	arg[32];
-	int	l, i, a;
+	size_t	l, i;
+	int	a;
 	int	eoc;
 
 	eoc = 0;
@@ -1242,7 +1245,8 @@
 wcstrg(void)
 {
 	char	*s;
-	int	c, i, n, wi;
+	int	c, n;
+	size_t	i, wi;
 	size_t	len, max, wlen;
 	wchar_t	*ws;
 	strg_t	*strg;

Index: src/usr.bin/xlint/lint1/tree.c
diff -u src/usr.bin/xlint/lint1/tree.c:1.56 src/usr.bin/xlint/lint1/tree.c:1.57
--- src/usr.bin/xlint/lint1/tree.c:1.56	Mon Apr 13 17:17:37 2009
+++ src/usr.bin/xlint/lint1/tree.c	Tue Apr 14 21:20:57 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: tree.c,v 1.56 2009/04/13 21:17:37 christos Exp $	*/
+/*	$NetBSD: tree.c,v 1.57 2009/04/15 01:20:57 christos Exp $	*/
 
 /*
  * Copyright (c) 1994, 1995 Jochen Pohl
@@ -37,7 +37,7 @@
 
 #include <sys/cdefs.h>
 #if defined(__RCSID) && !defined(lint)
-__RCSID("$NetBSD: tree.c,v 1.56 2009/04/13 21:17:37 christos Exp $");
+__RCSID("$NetBSD: tree.c,v 1.57 2009/04/15 01:20:57 christos Exp $");
 #endif
 
 #include <stdlib.h>
@@ -1010,10 +1010,10 @@
 			if (!isutyp(rt) && rn->tn_val->v_quad < 0) {
 				/* negative shift */
 				warning(121);
-			} else if ((uint64_t)rn->tn_val->v_quad == size(lt)) {
+			} else if ((uint64_t)rn->tn_val->v_quad == (uint64_t)size(lt)) {
 				/* shift equal to size fo object */
 				warning(267);
-			} else if ((uint64_t)rn->tn_val->v_quad > size(lt)) {
+			} else if ((uint64_t)rn->tn_val->v_quad > (uint64_t)size(lt)) {
 				/* shift greater than size of object */
 				warning(122);
 			}
@@ -1546,7 +1546,7 @@
 {
 	tspec_t	t;
 	type_t	*ntp;
-	int	len;
+	u_int	len;
 
 	t = tn->tn_type->t_tspec;
 
@@ -2025,7 +2025,7 @@
 			nv->v_ldbl = v->v_ldbl;
 		} else {
 			nv->v_quad = (nt == PTR || isutyp(nt)) ?
-				(uint64_t)v->v_ldbl : (int64_t)v->v_ldbl;
+				(int64_t)v->v_ldbl : (int64_t)v->v_ldbl;
 		}
 	} else {
 		if (nt == FLOAT) {
@@ -2792,7 +2792,7 @@
 			error(139);
 			q = utyp ? UQUAD_MAX : QUAD_MAX;
 		} else {
-			q = utyp ? ul / ur : sl / sr;
+			q = utyp ? (int64_t)(ul / ur) : sl / sr;
 		}
 		break;
 	case MOD:
@@ -2801,11 +2801,11 @@
 			error(140);
 			q = 0;
 		} else {
-			q = utyp ? ul % ur : sl % sr;
+			q = utyp ? (int64_t)(ul % ur) : sl % sr;
 		}
 		break;
 	case PLUS:
-		q = utyp ? ul + ur : sl + sr;
+		q = utyp ? (int64_t)(ul + ur) : sl + sr;
 		if (msb(sl, t, -1)  != 0 && msb(sr, t, -1) != 0) {
 			if (msb(q, t, -1) == 0)
 				ovfl = 1;
@@ -2815,7 +2815,7 @@
 		}
 		break;
 	case MINUS:
-		q = utyp ? ul - ur : sl - sr;
+		q = utyp ? (int64_t)(ul - ur) : sl - sr;
 		if (msb(sl, t, -1) != 0 && msb(sr, t, -1) == 0) {
 			if (msb(q, t, -1) == 0)
 				ovfl = 1;
@@ -2825,7 +2825,7 @@
 		}
 		break;
 	case SHL:
-		q = utyp ? ul << sr : sl << sr;
+		q = utyp ? (int64_t)(ul << sr) : sl << sr;
 		break;
 	case SHR:
 		/*
@@ -2854,20 +2854,21 @@
 		q = utyp ? ul != ur : sl != sr;
 		break;
 	case AND:
-		q = utyp ? ul & ur : sl & sr;
+		q = utyp ? (int64_t)(ul & ur) : sl & sr;
 		break;
 	case XOR:
-		q = utyp ? ul ^ ur : sl ^ sr;
+		q = utyp ? (int64_t)(ul ^ ur) : sl ^ sr;
 		break;
 	case OR:
-		q = utyp ? ul | ur : sl | sr;
+		q = utyp ? (int64_t)(ul | ur) : sl | sr;
 		break;
 	default:
 		LERROR("fold()");
 	}
 
 	/* XXX does not work for quads. */
-	if (ovfl || ((q | mask) != ~(uint64_t)0 && (q & ~mask) != 0)) {
+	if (ovfl || ((uint64_t)(q | mask) != ~(uint64_t)0 &&
+	    (q & ~mask) != 0)) {
 		if (hflag)
 			/* integer overflow detected, op %s */
 			warning(141, modtab[tn->tn_op].m_name);
@@ -3743,7 +3744,7 @@
 	if (!isutyp(rn->tn_type->t_tspec) && con < 0) {
 		/* array subscript cannot be negative: %ld */
 		warning(167, (long)con);
-	} else if (dim > 0 && (uint64_t)con >= dim) {
+	} else if (dim > 0 && (uint64_t)con >= (uint64_t)dim) {
 		/* array subscript cannot be > %d: %ld */
 		warning(168, dim - 1, (long)con);
 	}

Index: src/usr.bin/xlint/lint2/hash.c
diff -u src/usr.bin/xlint/lint2/hash.c:1.10 src/usr.bin/xlint/lint2/hash.c:1.11
--- src/usr.bin/xlint/lint2/hash.c:1.10	Tue Apr 14 04:59:45 2009
+++ src/usr.bin/xlint/lint2/hash.c	Tue Apr 14 21:20:57 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: hash.c,v 1.10 2009/04/14 08:59:45 lukem Exp $	*/
+/*	$NetBSD: hash.c,v 1.11 2009/04/15 01:20:57 christos Exp $	*/
 
 /*
  * Copyright (c) 1994, 1995 Jochen Pohl
@@ -37,7 +37,7 @@
 
 #include <sys/cdefs.h>
 #if defined(__RCSID) && !defined(lint)
-__RCSID("$NetBSD: hash.c,v 1.10 2009/04/14 08:59:45 lukem Exp $");
+__RCSID("$NetBSD: hash.c,v 1.11 2009/04/15 01:20:57 christos Exp $");
 #endif
 
 /*
@@ -159,7 +159,7 @@
 
 	for (i = 0; i < HSHSIZ2; i++) {
 		for (hte = table[i]; hte != NULL; hte = nexthte) {
-			free((void *)__UNCONST(hte->h_name));
+			free(__UNCONST(hte->h_name));
 			nexthte = hte->h_link;
 			free(hte);
 		}

Index: src/usr.bin/xlint/lint2/read.c
diff -u src/usr.bin/xlint/lint2/read.c:1.24 src/usr.bin/xlint/lint2/read.c:1.25
--- src/usr.bin/xlint/lint2/read.c:1.24	Tue Apr 14 05:06:25 2009
+++ src/usr.bin/xlint/lint2/read.c	Tue Apr 14 21:20:57 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: read.c,v 1.24 2009/04/14 09:06:25 lukem Exp $ */
+/* $NetBSD: read.c,v 1.25 2009/04/15 01:20:57 christos 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: read.c,v 1.24 2009/04/14 09:06:25 lukem Exp $");
+__RCSID("$NetBSD: read.c,v 1.25 2009/04/15 01:20:57 christos Exp $");
 #endif
 
 #include <ctype.h>
@@ -252,10 +252,10 @@
 setfnid(int fid, const char *cp)
 {
 
-	if (fid == -1)
+	if (fid < 0)
 		inperr("bad fid");
 
-	if (fid >= ninpfns) {
+	if ((size_t)fid >= ninpfns) {
 		inpfns = xrealloc(inpfns, (ninpfns * 2) * sizeof (short));
 		(void)memset(inpfns + ninpfns, 0, ninpfns * sizeof (short));
 		ninpfns *= 2;
@@ -264,7 +264,7 @@
 	 * Should always be true because indices written in the output
 	 * file by lint1 are always the previous index + 1.
 	 */
-	if (fid >= ninpfns)
+	if ((size_t)fid >= ninpfns)
 		errx(1, "internal error: setfnid()");
 	inpfns[fid] = (u_short)getfnidx(cp);
 }
@@ -1103,7 +1103,7 @@
 			}
 		}
 		/* keep space for trailing '\0' */
-		if (dst - strg == slen - 1) {
+		if ((size_t)(dst - strg) == slen - 1) {
 			strg = xrealloc(strg, slen * 2);
 			dst = strg + (slen - 1);
 			slen *= 2;

Index: src/usr.bin/xlint/xlint/xlint.c
diff -u src/usr.bin/xlint/xlint/xlint.c:1.41 src/usr.bin/xlint/xlint/xlint.c:1.42
--- src/usr.bin/xlint/xlint/xlint.c:1.41	Tue Apr 14 05:08:39 2009
+++ src/usr.bin/xlint/xlint/xlint.c	Tue Apr 14 21:20:57 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: xlint.c,v 1.41 2009/04/14 09:08:39 lukem Exp $ */
+/* $NetBSD: xlint.c,v 1.42 2009/04/15 01:20:57 christos 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: xlint.c,v 1.41 2009/04/14 09:08:39 lukem Exp $");
+__RCSID("$NetBSD: xlint.c,v 1.42 2009/04/15 01:20:57 christos Exp $");
 #endif
 
 #include <sys/param.h>
@@ -310,7 +310,7 @@
 main(int argc, char *argv[])
 {
 	int	c;
-	char	flgbuf[3], *tmp, *s;
+	char	flgbuf[3], *tmp;
 	size_t	len;
 	const char *ks;
 
@@ -319,9 +319,9 @@
 	if ((tmp = getenv("TMPDIR")) == NULL || (len = strlen(tmp)) == 0) {
 		tmpdir = xstrdup(_PATH_TMP);
 	} else {
-		s = xmalloc(len + 2);
-		(void)sprintf(s, "%s%s", tmp, tmp[len - 1] == '/' ? "" : "/");
-		tmpdir = s;
+		char *p = xmalloc(len + 2);
+		(void)sprintf(p, "%s%s", tmp, tmp[len - 1] == '/' ? "" : "/");
+		tmpdir = p;
 	}
 
 	cppout = xmalloc(strlen(tmpdir) + sizeof ("lint0.XXXXXX"));
@@ -645,7 +645,7 @@
 			return;
 		}
 		ofn = xmalloc(strlen(bn) + (bn == suff ? 4 : 2));
-		len = bn == suff ? strlen(bn) : (suff - 1) - bn;
+		len = bn == suff ? strlen(bn) : (size_t)((suff - 1) - bn);
 		(void)sprintf(ofn, "%.*s", (int)len, bn);
 		(void)strcat(ofn, ".ln");
 	} else {

Reply via email to