Module Name:    src
Committed By:   rillig
Date:           Mon Dec 28 18:49:02 UTC 2020

Modified Files:
        src/usr.bin/xlint/common: lint.h
        src/usr.bin/xlint/lint1: decl.c emit1.c func.c init.c tree.c
        src/usr.bin/xlint/lint2: chk.c

Log Message:
lint: rename tspec macros


To generate a diff of this commit:
cvs rdiff -u -r1.15 -r1.16 src/usr.bin/xlint/common/lint.h
cvs rdiff -u -r1.71 -r1.72 src/usr.bin/xlint/lint1/decl.c
cvs rdiff -u -r1.21 -r1.22 src/usr.bin/xlint/lint1/emit1.c
cvs rdiff -u -r1.26 -r1.27 src/usr.bin/xlint/lint1/func.c
cvs rdiff -u -r1.28 -r1.29 src/usr.bin/xlint/lint1/init.c
cvs rdiff -u -r1.89 -r1.90 src/usr.bin/xlint/lint1/tree.c
cvs rdiff -u -r1.23 -r1.24 src/usr.bin/xlint/lint2/chk.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/lint.h
diff -u src/usr.bin/xlint/common/lint.h:1.15 src/usr.bin/xlint/common/lint.h:1.16
--- src/usr.bin/xlint/common/lint.h:1.15	Mon Dec 28 18:06:23 2020
+++ src/usr.bin/xlint/common/lint.h	Mon Dec 28 18:49:02 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: lint.h,v 1.15 2020/12/28 18:06:23 rillig Exp $	*/
+/*	$NetBSD: lint.h,v 1.16 2020/12/28 18:49:02 rillig Exp $	*/
 
 /*
  * Copyright (c) 1994, 1995 Jochen Pohl
@@ -94,25 +94,25 @@ typedef	struct {
 					   if pflag is set */
 	tspec_t	tt_styp;		/* signed counterpart */
 	tspec_t	tt_utyp;		/* unsigned counterpart */
-	u_int	tt_isityp : 1;		/* 1 if integer type */
-	u_int	tt_isutyp : 1;		/* 1 if unsigned integer type */
-	u_int	tt_isftyp : 1;		/* 1 if floating point type */
-	u_int	tt_isatyp : 1;		/* 1 if arithmetic type */
-	u_int	tt_issclt : 1;		/* 1 if scalar type */
-	u_int	tt_isctyp : 1;		/* 1 if complex type */
+	u_int	tt_is_int : 1;		/* 1 if integer type */
+	u_int	tt_is_uint : 1;		/* 1 if unsigned integer type */
+	u_int	tt_is_float : 1;	/* 1 if floating point type */
+	u_int	tt_is_arith : 1;	/* 1 if arithmetic type */
+	u_int	tt_is_scalar : 1;	/* 1 if scalar type */
+	u_int	tt_is_complex : 1;	/* 1 if complex type */
 	const char *tt_name;		/* name of the type */
 } ttab_t;
 
-#define size(t)		(ttab[t].tt_sz)
-#define psize(t)	(ttab[t].tt_psz)
-#define styp(t)		(ttab[t].tt_styp)
-#define utyp(t)		(ttab[t].tt_utyp)
-#define isityp(t)	(ttab[t].tt_isityp)
-#define isutyp(t)	(ttab[t].tt_isutyp)
-#define isftyp(t)	(ttab[t].tt_isftyp)
-#define isatyp(t)	(ttab[t].tt_isatyp)
-#define isctyp(t)	(ttab[t].tt_isctyp)
-#define issclt(t)	(ttab[t].tt_issclt)
+#define size(t)			(ttab[t].tt_sz)
+#define psize(t)		(ttab[t].tt_psz)
+#define styp(t)			(ttab[t].tt_styp)
+#define utyp(t)			(ttab[t].tt_utyp)
+#define tspec_is_int(t)		(ttab[t].tt_is_int)
+#define tspec_is_uint(t)	(ttab[t].tt_is_uint)
+#define tspec_is_float(t)	(ttab[t].tt_is_float)
+#define tspec_is_arith(t)	(ttab[t].tt_is_arith)
+#define tspec_is_complex(t)	(ttab[t].tt_is_complex)
+#define tspec_is_scalar(t)	(ttab[t].tt_is_scalar)
 
 extern	ttab_t	ttab[];
 

Index: src/usr.bin/xlint/lint1/decl.c
diff -u src/usr.bin/xlint/lint1/decl.c:1.71 src/usr.bin/xlint/lint1/decl.c:1.72
--- src/usr.bin/xlint/lint1/decl.c:1.71	Tue Jun  2 21:10:07 2020
+++ src/usr.bin/xlint/lint1/decl.c	Mon Dec 28 18:49:02 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: decl.c,v 1.71 2020/06/02 21:10:07 christos Exp $ */
+/* $NetBSD: decl.c,v 1.72 2020/12/28 18:49:02 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.71 2020/06/02 21:10:07 christos Exp $");
+__RCSID("$NetBSD: decl.c,v 1.72 2020/12/28 18:49:02 rillig Exp $");
 #endif
 
 #include <sys/param.h>
@@ -1142,7 +1142,7 @@ decl1str(sym_t *dsym)
 			 * Integer types not dealt with above are
 			 * okay only if BITFIELDTYPE is in effect.
 			 */
-			if (bitfieldtype_ok == 0 || isityp(t) == 0) {
+			if (bitfieldtype_ok == 0 || tspec_is_int(t) == 0) {
 				/* illegal bit-field type */
 				warning(35);
 				sz = tp->t_flen;

Index: src/usr.bin/xlint/lint1/emit1.c
diff -u src/usr.bin/xlint/lint1/emit1.c:1.21 src/usr.bin/xlint/lint1/emit1.c:1.22
--- src/usr.bin/xlint/lint1/emit1.c:1.21	Mon Dec 28 12:52:45 2020
+++ src/usr.bin/xlint/lint1/emit1.c	Mon Dec 28 18:49:02 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: emit1.c,v 1.21 2020/12/28 12:52:45 rillig Exp $ */
+/* $NetBSD: emit1.c,v 1.22 2020/12/28 18:49:02 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: emit1.c,v 1.21 2020/12/28 12:52:45 rillig Exp $");
+__RCSID("$NetBSD: emit1.c,v 1.22 2020/12/28 18:49:02 rillig Exp $");
 #endif
 
 #include <ctype.h>
@@ -442,7 +442,7 @@ outcall(tnode_t *tn, int rvused, int rvd
 			continue;
 		arg = arg->tn_left;
 		if (arg->tn_op == CON) {
-			if (isityp(t = arg->tn_type->t_tspec)) {
+			if (tspec_is_int(t = arg->tn_type->t_tspec)) {
 				/*
 				 * XXX it would probably be better to
 				 * explicitly test the sign

Index: src/usr.bin/xlint/lint1/func.c
diff -u src/usr.bin/xlint/lint1/func.c:1.26 src/usr.bin/xlint/lint1/func.c:1.27
--- src/usr.bin/xlint/lint1/func.c:1.26	Fri Aug 19 10:58:15 2016
+++ src/usr.bin/xlint/lint1/func.c	Mon Dec 28 18:49:02 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: func.c,v 1.26 2016/08/19 10:58:15 christos Exp $	*/
+/*	$NetBSD: func.c,v 1.27 2020/12/28 18:49:02 rillig Exp $	*/
 
 /*
  * Copyright (c) 1994, 1995 Jochen Pohl
@@ -37,7 +37,7 @@
 
 #include <sys/cdefs.h>
 #if defined(__RCSID) && !defined(lint)
-__RCSID("$NetBSD: func.c,v 1.26 2016/08/19 10:58:15 christos Exp $");
+__RCSID("$NetBSD: func.c,v 1.27 2020/12/28 18:49:02 rillig Exp $");
 #endif
 
 #include <stdlib.h>
@@ -443,7 +443,7 @@ label(int typ, sym_t *sym, tnode_t *tn)
 			/* non-constant case expression */
 			error(197);
 			tn = NULL;
-		} else if (tn != NULL && !isityp(tn->tn_type->t_tspec)) {
+		} else if (tn != NULL && !tspec_is_int(tn->tn_type->t_tspec)) {
 			/* non-integral case expression */
 			error(198);
 			tn = NULL;
@@ -482,7 +482,7 @@ label(int typ, sym_t *sym, tnode_t *tn)
 				if (cl->cl_val.v_quad == nv.v_quad)
 					break;
 			}
-			if (cl != NULL && isutyp(nv.v_tspec)) {
+			if (cl != NULL && tspec_is_uint(nv.v_tspec)) {
 				/* duplicate case in switch, %lu */
 				error(200, (u_long)nv.v_quad);
 			} else if (cl != NULL) {
@@ -583,7 +583,7 @@ switch1(tnode_t *tn)
 		tn = cconv(tn);
 	if (tn != NULL)
 		tn = promote(NOOP, 0, tn);
-	if (tn != NULL && !isityp(tn->tn_type->t_tspec)) {
+	if (tn != NULL && !tspec_is_int(tn->tn_type->t_tspec)) {
 		/* switch expression must have integral type */
 		error(205);
 		tn = NULL;
@@ -693,7 +693,7 @@ while1(tnode_t *tn)
 		tn = cconv(tn);
 	if (tn != NULL)
 		tn = promote(NOOP, 0, tn);
-	if (tn != NULL && !issclt(tn->tn_type->t_tspec)) {
+	if (tn != NULL && !tspec_is_scalar(tn->tn_type->t_tspec)) {
 		/* controlling expressions must have scalar type */
 		error(204);
 		tn = NULL;
@@ -702,7 +702,7 @@ while1(tnode_t *tn)
 	pushctrl(T_WHILE);
 	cstk->c_loop = 1;
 	if (tn != NULL && tn->tn_op == CON) {
-		if (isityp(tn->tn_type->t_tspec)) {
+		if (tspec_is_int(tn->tn_type->t_tspec)) {
 			cstk->c_infinite = tn->tn_val->v_quad != 0;
 		} else {
 			cstk->c_infinite = tn->tn_val->v_ldbl != 0.0;
@@ -766,14 +766,14 @@ do2(tnode_t *tn)
 		tn = cconv(tn);
 	if (tn != NULL)
 		tn = promote(NOOP, 0, tn);
-	if (tn != NULL && !issclt(tn->tn_type->t_tspec)) {
+	if (tn != NULL && !tspec_is_scalar(tn->tn_type->t_tspec)) {
 		/* controlling expressions must have scalar type */
 		error(204);
 		tn = NULL;
 	}
 
 	if (tn != NULL && tn->tn_op == CON) {
-		if (isityp(tn->tn_type->t_tspec)) {
+		if (tspec_is_int(tn->tn_type->t_tspec)) {
 			cstk->c_infinite = tn->tn_val->v_quad != 0;
 		} else {
 			cstk->c_infinite = tn->tn_val->v_ldbl != 0.0;
@@ -831,7 +831,7 @@ for1(tnode_t *tn1, tnode_t *tn2, tnode_t
 		tn2 = cconv(tn2);
 	if (tn2 != NULL)
 		tn2 = promote(NOOP, 0, tn2);
-	if (tn2 != NULL && !issclt(tn2->tn_type->t_tspec)) {
+	if (tn2 != NULL && !tspec_is_scalar(tn2->tn_type->t_tspec)) {
 		/* controlling expressions must have scalar type */
 		error(204);
 		tn2 = NULL;
@@ -842,7 +842,7 @@ for1(tnode_t *tn1, tnode_t *tn2, tnode_t
 	if (tn2 == NULL) {
 		cstk->c_infinite = 1;
 	} else if (tn2->tn_op == CON) {
-		if (isityp(tn2->tn_type->t_tspec)) {
+		if (tspec_is_int(tn2->tn_type->t_tspec)) {
 			cstk->c_infinite = tn2->tn_val->v_quad != 0;
 		} else {
 			cstk->c_infinite = tn2->tn_val->v_ldbl != 0.0;

Index: src/usr.bin/xlint/lint1/init.c
diff -u src/usr.bin/xlint/lint1/init.c:1.28 src/usr.bin/xlint/lint1/init.c:1.29
--- src/usr.bin/xlint/lint1/init.c:1.28	Mon Dec 28 12:52:45 2020
+++ src/usr.bin/xlint/lint1/init.c	Mon Dec 28 18:49:02 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: init.c,v 1.28 2020/12/28 12:52:45 rillig Exp $	*/
+/*	$NetBSD: init.c,v 1.29 2020/12/28 18:49:02 rillig Exp $	*/
 
 /*
  * Copyright (c) 1994, 1995 Jochen Pohl
@@ -37,7 +37,7 @@
 
 #include <sys/cdefs.h>
 #if defined(__RCSID) && !defined(lint)
-__RCSID("$NetBSD: init.c,v 1.28 2020/12/28 12:52:45 rillig Exp $");
+__RCSID("$NetBSD: init.c,v 1.29 2020/12/28 18:49:02 rillig Exp $");
 #endif
 
 #include <stdlib.h>
@@ -281,7 +281,7 @@ pushinit(void)
 
 	if (istk->i_cnt <= 0)
 		LERROR("pushinit()");
-	if (istk->i_type != NULL && issclt(istk->i_type->t_tspec))
+	if (istk->i_type != NULL && tspec_is_scalar(istk->i_type->t_tspec))
 		LERROR("pushinit()");
 
 	initstk = xcalloc(1, sizeof (istk_t));
@@ -431,7 +431,7 @@ nextinit(int brace)
 	DPRINTF(("%s(%d)\n", __func__, brace));
 	if (!brace) {
 		if (initstk->i_type == NULL &&
-		    !issclt(initstk->i_subt->t_tspec)) {
+		    !tspec_is_scalar(initstk->i_subt->t_tspec)) {
 			/* {}-enclosed initializer required */
 			error(181);
 		}
@@ -442,13 +442,14 @@ nextinit(int brace)
 		if (!initerr)
 			testinit();
 		while (!initerr && (initstk->i_type == NULL ||
-				    !issclt(initstk->i_type->t_tspec))) {
+				    !tspec_is_scalar(
+				        initstk->i_type->t_tspec))) {
 			if (!initerr)
 				pushinit();
 		}
 	} else {
 		if (initstk->i_type != NULL &&
-		    issclt(initstk->i_type->t_tspec)) {
+		    tspec_is_scalar(initstk->i_type->t_tspec)) {
 			/* invalid initializer */
 			error(176, tyname(buf, sizeof(buf), initstk->i_type));
 			initerr = 1;
@@ -477,7 +478,7 @@ initlbr(void)
 
 	if ((initsym->s_scl == AUTO || initsym->s_scl == REG) &&
 	    initstk->i_nxt == NULL) {
-		if (tflag && !issclt(initstk->i_subt->t_tspec))
+		if (tflag && !tspec_is_scalar(initstk->i_subt->t_tspec))
 			/* no automatic aggregate initialization in trad. C*/
 			warning(188);
 	}
@@ -572,7 +573,7 @@ mkinit(tnode_t *tn)
 	lt = ln->tn_type->t_tspec;
 	rt = tn->tn_type->t_tspec;
 
-	if (!issclt(lt))
+	if (!tspec_is_scalar(lt))
 		LERROR("mkinit()");
 
 	if (!typeok(INIT, 0, ln, tn))
@@ -586,7 +587,7 @@ mkinit(tnode_t *tn)
 	expr(tn, 1, 0, 1);
 	trestor(tmem);
 
-	if (isityp(lt) && ln->tn_type->t_isfield && !isityp(rt)) {
+	if (tspec_is_int(lt) && ln->tn_type->t_isfield && !tspec_is_int(rt)) {
 		/*
 		 * Bit-fields can be initialized in trad. C only by integer
 		 * constants.

Index: src/usr.bin/xlint/lint1/tree.c
diff -u src/usr.bin/xlint/lint1/tree.c:1.89 src/usr.bin/xlint/lint1/tree.c:1.90
--- src/usr.bin/xlint/lint1/tree.c:1.89	Mon Dec 28 12:52:45 2020
+++ src/usr.bin/xlint/lint1/tree.c	Mon Dec 28 18:49:02 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: tree.c,v 1.89 2020/12/28 12:52:45 rillig Exp $	*/
+/*	$NetBSD: tree.c,v 1.90 2020/12/28 18:49:02 rillig 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.89 2020/12/28 12:52:45 rillig Exp $");
+__RCSID("$NetBSD: tree.c,v 1.90 2020/12/28 18:49:02 rillig Exp $");
 #endif
 
 #include <stdlib.h>
@@ -624,7 +624,7 @@ build(op_t op, tnode_t *ln, tnode_t *rn)
 		if (ln->tn_op == CON && (!mp->m_binary || rn->tn_op == CON)) {
 			if (mp->m_tctx) {
 				ntn = foldtst(ntn);
-			} else if (isftyp(ntn->tn_type->t_tspec)) {
+			} else if (tspec_is_float(ntn->tn_type->t_tspec)) {
 				ntn = foldflt(ntn);
 			} else {
 				ntn = fold(ntn);
@@ -713,27 +713,30 @@ typeok(op_t op, int arg, tnode_t *ln, tn
 	}
 
 	if (mp->m_rqint) {
-		/* integertypes required */
-		if (!isityp(lt) || (mp->m_binary && !isityp(rt))) {
+		/* integer types required */
+		if (!tspec_is_int(lt) || (mp->m_binary && !tspec_is_int(rt))) {
 			incompat(op, lt, rt);
 			return (0);
 		}
 	} else if (mp->m_rqintcomp) {
-		/* integertypes required */
-		if ((!isityp(lt) && !isctyp(lt)) ||
-		    (mp->m_binary && (!isityp(rt) && !isctyp(rt)))) {
+		/* integer or complex types required */
+		if ((!tspec_is_int(lt) && !tspec_is_complex(lt)) ||
+		    (mp->m_binary &&
+		     (!tspec_is_int(rt) && !tspec_is_complex(rt)))) {
 			incompat(op, lt, rt);
 			return (0);
 		}
 	} else if (mp->m_rqsclt) {
 		/* scalar types required */
-		if (!issclt(lt) || (mp->m_binary && !issclt(rt))) {
+		if (!tspec_is_scalar(lt) ||
+		    (mp->m_binary && !tspec_is_scalar(rt))) {
 			incompat(op, lt, rt);
 			return (0);
 		}
 	} else if (mp->m_rqatyp) {
 		/* arithmetic types required */
-		if (!isatyp(lt) || (mp->m_binary && !isatyp(rt))) {
+		if (!tspec_is_arith(lt) ||
+		    (mp->m_binary && !tspec_is_arith(rt))) {
 			incompat(op, lt, rt);
 			return (0);
 		}
@@ -769,7 +772,7 @@ typeok(op_t op, int arg, tnode_t *ln, tn
 		/* Now we have an object we can create a pointer to */
 		break;
 	case ARROW:
-		if (lt != PTR && !(tflag && isityp(lt))) {
+		if (lt != PTR && !(tflag && tspec_is_int(lt))) {
 			/* Without tflag we got already an error */
 			if (tflag)
 				/* unacceptabel operand of %s */
@@ -813,7 +816,7 @@ typeok(op_t op, int arg, tnode_t *ln, tn
 			/* %soperand of %s must be lvalue */
 			error(114, "", mp->m_name);
 			return (0);
-		} else if (issclt(lt)) {
+		} else if (tspec_is_scalar(lt)) {
 			if (ltp->t_isfield) {
 				/* cannot take address of bit-field */
 				error(112);
@@ -840,14 +843,15 @@ typeok(op_t op, int arg, tnode_t *ln, tn
 		break;
 	case PLUS:
 		/* operands have scalar types (checked above) */
-		if ((lt == PTR && !isityp(rt)) || (rt == PTR && !isityp(lt))) {
+		if ((lt == PTR && !tspec_is_int(rt)) ||
+		    (rt == PTR && !tspec_is_int(lt))) {
 			incompat(op, lt, rt);
 			return (0);
 		}
 		break;
 	case MINUS:
 		/* operands have scalar types (checked above) */
-		if (lt == PTR && (!isityp(rt) && rt != PTR)) {
+		if (lt == PTR && (!tspec_is_int(rt) && rt != PTR)) {
 			incompat(op, lt, rt);
 			return (0);
 		} else if (rt == PTR && lt != PTR) {
@@ -863,7 +867,7 @@ typeok(op_t op, int arg, tnode_t *ln, tn
 		break;
 	case SHR:
 		/* operands have integer types (checked above) */
-		if (pflag && !isutyp(lt)) {
+		if (pflag && !tspec_is_uint(lt)) {
 			/*
 			 * The left operand is signed. This means that
 			 * the operation is (possibly) nonportable.
@@ -875,7 +879,8 @@ typeok(op_t op, int arg, tnode_t *ln, tn
 			} else if (ln->tn_val->v_quad < 0) {
 				warning(120);
 			}
-		} else if (!tflag && !sflag && !isutyp(olt) && isutyp(ort)) {
+		} else if (!tflag && !sflag &&
+		    !tspec_is_uint(olt) && tspec_is_uint(ort)) {
 			/*
 			 * The left operand would become unsigned in
 			 * traditional C.
@@ -885,7 +890,8 @@ typeok(op_t op, int arg, tnode_t *ln, tn
 				/* semantics of %s change in ANSI C; use ... */
 				warning(118, mp->m_name);
 			}
-		} else if (!tflag && !sflag && !isutyp(olt) && !isutyp(ort) &&
+		} else if (!tflag && !sflag &&
+		    !tspec_is_uint(olt) && !tspec_is_uint(ort) &&
 			   psize(lt) < psize(rt)) {
 			/*
 			 * In traditional C the left operand would be extended,
@@ -919,7 +925,7 @@ typeok(op_t op, int arg, tnode_t *ln, tn
 		}
 	shift:
 		if (rn->tn_op == CON) {
-			if (!isutyp(rt) && rn->tn_val->v_quad < 0) {
+			if (!tspec_is_uint(rt) && rn->tn_val->v_quad < 0) {
 				/* negative shift */
 				warning(121);
 			} else if ((uint64_t)rn->tn_val->v_quad == (uint64_t)size(lt)) {
@@ -937,11 +943,13 @@ typeok(op_t op, int arg, tnode_t *ln, tn
 		 * Accept some things which are allowed with EQ and NE,
 		 * but not with ordered comparisons.
 		 */
-		if (lt == PTR && ((rt == PTR && rst == VOID) || isityp(rt))) {
+		if (lt == PTR && ((rt == PTR && rst == VOID) ||
+				  tspec_is_int(rt))) {
 			if (rn->tn_op == CON && rn->tn_val->v_quad == 0)
 				break;
 		}
-		if (rt == PTR && ((lt == PTR && lst == VOID) || isityp(lt))) {
+		if (rt == PTR && ((lt == PTR && lst == VOID) ||
+				  tspec_is_int(lt))) {
 			if (ln->tn_op == CON && ln->tn_val->v_quad == 0)
 				break;
 		}
@@ -951,7 +959,7 @@ typeok(op_t op, int arg, tnode_t *ln, tn
 	case LE:
 	case GE:
 		if ((lt == PTR || rt == PTR) && lt != rt) {
-			if (isityp(lt) || isityp(rt)) {
+			if (tspec_is_int(lt) || tspec_is_int(rt)) {
 				const char *lx = lt == PTR ?
 				    "pointer" : "integer";
 				const char *rx = rt == PTR ?
@@ -969,7 +977,7 @@ typeok(op_t op, int arg, tnode_t *ln, tn
 		}
 		break;
 	case QUEST:
-		if (!issclt(lt)) {
+		if (!tspec_is_scalar(lt)) {
 			/* first operand must have scalar type, op ? : */
 			error(170);
 			return (0);
@@ -980,8 +988,7 @@ typeok(op_t op, int arg, tnode_t *ln, tn
 			LERROR("typeok()");
 		break;
 	case COLON:
-
-		if (isatyp(lt) && isatyp(rt))
+		if (tspec_is_arith(lt) && tspec_is_arith(rt))
 			break;
 
 		if (lt == STRUCT && rt == STRUCT && ltp->t_str == rtp->t_str)
@@ -990,16 +997,19 @@ typeok(op_t op, int arg, tnode_t *ln, tn
 			break;
 
 		/* combination of any pointer and 0, 0L or (void *)0 is ok */
-		if (lt == PTR && ((rt == PTR && rst == VOID) || isityp(rt))) {
+		if (lt == PTR && ((rt == PTR && rst == VOID) ||
+				  tspec_is_int(rt))) {
 			if (rn->tn_op == CON && rn->tn_val->v_quad == 0)
 				break;
 		}
-		if (rt == PTR && ((lt == PTR && lst == VOID) || isityp(lt))) {
+		if (rt == PTR && ((lt == PTR && lst == VOID) ||
+				  tspec_is_int(lt))) {
 			if (ln->tn_op == CON && ln->tn_val->v_quad == 0)
 				break;
 		}
 
-		if ((lt == PTR && isityp(rt)) || (isityp(lt) && rt == PTR)) {
+		if ((lt == PTR && tspec_is_int(rt)) ||
+		    (tspec_is_int(lt) && rt == PTR)) {
 			const char *lx = lt == PTR ?  "pointer" : "integer";
 			const char *rx = rt == PTR ?  "pointer" : "integer";
 			tyname(lbuf, sizeof(lbuf), ltp);
@@ -1052,7 +1062,7 @@ typeok(op_t op, int arg, tnode_t *ln, tn
 	case ADDASS:
 	case SUBASS:
 		/* operands have scalar types (checked above) */
-		if ((lt == PTR && !isityp(rt)) || rt == PTR) {
+		if ((lt == PTR && !tspec_is_int(rt)) || rt == PTR) {
 			incompat(op, lt, rt);
 			return (0);
 		}
@@ -1060,7 +1070,8 @@ typeok(op_t op, int arg, tnode_t *ln, tn
 	case SHLASS:
 		goto assign;
 	case SHRASS:
-		if (pflag && !isutyp(lt) && !(tflag && isutyp(rt))) {
+		if (pflag && !tspec_is_uint(lt) &&
+		    !(tflag && tspec_is_uint(rt))) {
 			/* bitwise operation on s.v. possibly nonportable */
 			warning(117);
 		}
@@ -1188,7 +1199,7 @@ asgntypok(op_t op, int arg, tnode_t *ln,
 		rst = (rstp = rtp->t_subt)->t_tspec;
 	mp = &modtab[op];
 
-	if (isatyp(lt) && isatyp(rt))
+	if (tspec_is_arith(lt) && tspec_is_arith(rt))
 		return (1);
 
 	if ((lt == STRUCT || lt == UNION) && (rt == STRUCT || rt == UNION))
@@ -1196,7 +1207,7 @@ asgntypok(op_t op, int arg, tnode_t *ln,
 		return (ltp->t_str == rtp->t_str);
 
 	/* 0, 0L and (void *)0 may be assigned to any pointer */
-	if (lt == PTR && ((rt == PTR && rst == VOID) || isityp(rt))) {
+	if (lt == PTR && ((rt == PTR && rst == VOID) || tspec_is_int(rt))) {
 		if (rn->tn_op == CON && rn->tn_val->v_quad == 0)
 			return (1);
 	}
@@ -1253,7 +1264,8 @@ asgntypok(op_t op, int arg, tnode_t *ln,
 		return (1);
 	}
 
-	if ((lt == PTR && isityp(rt)) || (isityp(lt) && rt == PTR)) {
+	if ((lt == PTR && tspec_is_int(rt)) ||
+	    (tspec_is_int(lt) && rt == PTR)) {
 		const char *lx = lt == PTR ? "pointer" : "integer";
 		const char *rx = rt == PTR ? "pointer" : "integer";
 		tyname(lbuf, sizeof(lbuf), ltp);
@@ -1408,7 +1420,8 @@ chkeop1(op_t op, int arg, tnode_t *ln, t
 		 * consequently.
 		 */
 		if (!rn->tn_type->t_isenum && rn->tn_op == CON &&
-		    isityp(rn->tn_type->t_tspec) && rn->tn_val->v_quad == 0) {
+		    tspec_is_int(rn->tn_type->t_tspec) &&
+		    rn->tn_val->v_quad == 0) {
 			return;
 		}
 		/* initialisation of '%s' with '%s' */
@@ -1521,7 +1534,7 @@ promote(op_t op, int farg, tnode_t *tn)
 
 	t = tn->tn_type->t_tspec;
 
-	if (!isatyp(t))
+	if (!tspec_is_arith(t))
 		return (tn);
 
 	if (!tflag) {
@@ -1537,7 +1550,7 @@ promote(op_t op, int farg, tnode_t *tn)
 			} else {
 				if (size(INT) != len)
 					LERROR("promote()");
-				if (isutyp(t)) {
+				if (tspec_is_uint(t)) {
 					t = UINT;
 				} else {
 					t = INT;
@@ -1600,7 +1613,7 @@ balance(op_t op, tnode_t **lnp, tnode_t 
 	lt = (*lnp)->tn_type->t_tspec;
 	rt = (*rnp)->tn_type->t_tspec;
 
-	if (!isatyp(lt) || !isatyp(rt))
+	if (!tspec_is_arith(lt) || !tspec_is_arith(rt))
 		return;
 
 	if (!tflag) {
@@ -1634,8 +1647,8 @@ balance(op_t op, tnode_t **lnp, tnode_t 
 					if (tl[i] == lt || tl[i] == rt)
 						break;
 				}
-				if ((isutyp(lt) || isutyp(rt)) &&
-				    !isutyp(tl[i])) {
+				if ((tspec_is_uint(lt) || tspec_is_uint(rt)) &&
+				    !tspec_is_uint(tl[i])) {
 					i--;
 				}
 				t = tl[i];
@@ -1643,13 +1656,13 @@ balance(op_t op, tnode_t **lnp, tnode_t 
 		}
 	} else {
 		/* Keep unsigned in traditional C */
-		u = isutyp(lt) || isutyp(rt);
+		u = tspec_is_uint(lt) || tspec_is_uint(rt);
 		for (i = 0; tl[i] != INT; i++) {
 			if (lt == tl[i] || rt == tl[i])
 				break;
 		}
 		t = tl[i];
-		if (u && isityp(t) && !isutyp(t))
+		if (u && tspec_is_int(t) && !tspec_is_uint(t))
 			t = utyp(t);
 	}
 
@@ -1682,12 +1695,12 @@ convert(op_t op, int arg, type_t *tp, tn
 
 	if (!tflag && !sflag && op == FARG)
 		ptconv(arg, nt, ot, tp, tn);
-	if (isityp(nt) && isityp(ot)) {
+	if (tspec_is_int(nt) && tspec_is_int(ot)) {
 		iiconv(op, arg, nt, ot, tp, tn);
-	} else if (nt == PTR && ((ot == PTR && ost == VOID) || isityp(ot)) &&
-		   tn->tn_op == CON && tn->tn_val->v_quad == 0) {
+	} else if (nt == PTR && ((ot == PTR && ost == VOID) ||
+	    tspec_is_int(ot)) && tn->tn_op == CON && tn->tn_val->v_quad == 0) {
 		/* 0, 0L and (void *)0 may be assigned to any pointer. */
-	} else if (isityp(nt) && ot == PTR) {
+	} else if (tspec_is_int(nt) && ot == PTR) {
 		piconv(op, nt, tp, tn);
 	} else if (nt == PTR && ot == PTR) {
 		ppconv(op, tn, tp);
@@ -1723,7 +1736,7 @@ ptconv(int arg, tspec_t nt, tspec_t ot, 
 	tnode_t	*ptn;
 	char buf[64];
 
-	if (!isatyp(nt) || !isatyp(ot))
+	if (!tspec_is_arith(nt) || !tspec_is_arith(ot))
 		return;
 
 	/*
@@ -1742,9 +1755,10 @@ ptconv(int arg, tspec_t nt, tspec_t ot, 
 	if (nt == ot || (nt == ENUM && ot == INT))
 		return;
 
-	if (isftyp(nt) != isftyp(ot) || psize(nt) != psize(ot)) {
+	if (tspec_is_float(nt) != tspec_is_float(ot) ||
+	    psize(nt) != psize(ot)) {
 		/* representation and/or width change */
-		if (!isityp(ot) || psize(ot) > psize(INT)) {
+		if (!tspec_is_int(ot) || psize(ot) > psize(INT)) {
 			/* conversion to '%s' due to prototype, arg #%d */
 			warning(259, tyname(buf, sizeof(buf), tp), arg);
 		}
@@ -1756,7 +1770,8 @@ ptconv(int arg, tspec_t nt, tspec_t ot, 
 		 * if they differ only in sign and the argument is a constant
 		 * and the msb of the argument is not set, print no warning
 		 */
-		if (ptn->tn_op == CON && isityp(nt) && styp(nt) == styp(ot) &&
+		if (ptn->tn_op == CON && tspec_is_int(nt) &&
+		    styp(nt) == styp(ot) &&
 		    msb(ptn->tn_val->v_quad, ot, -1) == 0) {
 			/* ok */
 		} else {
@@ -1781,7 +1796,8 @@ iiconv(op_t op, int arg, tspec_t nt, tsp
 	if (op == CVT)
 		return;
 
-	if (Pflag && psize(nt) > psize(ot) && isutyp(nt) != isutyp(ot)) {
+	if (Pflag && psize(nt) > psize(ot) &&
+	    tspec_is_uint(nt) != tspec_is_uint(ot)) {
 		/* conversion to %s may sign-extend incorrectly (, arg #%d) */
 		if (aflag && pflag) {
 			if (op == FARG) {
@@ -1993,18 +2009,18 @@ cvtcon(op_t op, int arg, type_t *tp, val
 		} else if (nt == LDOUBLE) {
 			nv->v_ldbl = v->v_ldbl;
 		} else {
-			nv->v_quad = (nt == PTR || isutyp(nt)) ?
+			nv->v_quad = (nt == PTR || tspec_is_uint(nt)) ?
 				(int64_t)v->v_ldbl : (int64_t)v->v_ldbl;
 		}
 	} else {
 		if (nt == FLOAT) {
-			nv->v_ldbl = (ot == PTR || isutyp(ot)) ?
+			nv->v_ldbl = (ot == PTR || tspec_is_uint(ot)) ?
 			       (float)(uint64_t)v->v_quad : (float)v->v_quad;
 		} else if (nt == DOUBLE) {
-			nv->v_ldbl = (ot == PTR || isutyp(ot)) ?
+			nv->v_ldbl = (ot == PTR || tspec_is_uint(ot)) ?
 			       (double)(uint64_t)v->v_quad : (double)v->v_quad;
 		} else if (nt == LDOUBLE) {
-			nv->v_ldbl = (ot == PTR || isutyp(ot)) ?
+			nv->v_ldbl = (ot == PTR || tspec_is_uint(ot)) ?
 			       (ldbl_t)(uint64_t)v->v_quad : (ldbl_t)v->v_quad;
 		} else {
 			rchk = 1;		/* Check for lost precision. */
@@ -2012,11 +2028,11 @@ cvtcon(op_t op, int arg, type_t *tp, val
 		}
 	}
 
-	if (v->v_ansiu && isftyp(nt)) {
+	if (v->v_ansiu && tspec_is_float(nt)) {
 		/* ANSI C treats constant as unsigned */
 		warning(157);
 		v->v_ansiu = 0;
-	} else if (v->v_ansiu && (isityp(nt) && !isutyp(nt) &&
+	} else if (v->v_ansiu && (tspec_is_int(nt) && !tspec_is_uint(nt) &&
 				  psize(nt) > psize(ot))) {
 		/* ANSI C treats constant as unsigned */
 		warning(157);
@@ -2078,8 +2094,8 @@ cvtcon(op_t op, int arg, type_t *tp, val
 				/* const. truncated by conv., op %s */
 				warning(306, modtab[op].m_name);
 			}
-		} else if ((nt != PTR && isutyp(nt)) &&
-			   (ot != PTR && !isutyp(ot)) && v->v_quad < 0) {
+		} else if ((nt != PTR && tspec_is_uint(nt)) &&
+			   (ot != PTR && !tspec_is_uint(ot)) && v->v_quad < 0) {
 			if (op == ASSIGN) {
 				/* assignment of negative constant to ... */
 				warning(164);
@@ -2097,7 +2113,8 @@ cvtcon(op_t op, int arg, type_t *tp, val
 			}
 		} else if (nv->v_quad != v->v_quad && nsz <= osz &&
 			   (v->v_quad & xmask) != 0 &&
-			   (isutyp(ot) || (v->v_quad & xmsk1) != xmsk1)) {
+			   (tspec_is_uint(ot) ||
+			    (v->v_quad & xmsk1) != xmsk1)) {
 			/*
 			 * Loss of significant bit(s). All truncated bits
 			 * of unsigned types or all truncated bits plus the
@@ -2323,7 +2340,7 @@ bldstr(op_t op, tnode_t *ln, tnode_t *rn
 	if (op == POINT) {
 		ln = bldamper(ln, 1);
 	} else if (ln->tn_type->t_tspec != PTR) {
-		if (!tflag || !isityp(ln->tn_type->t_tspec))
+		if (!tflag || !tspec_is_int(ln->tn_type->t_tspec))
 			LERROR("bldstr()");
 		ln = convert(NOOP, 0, tincref(gettyp(VOID), PTR), ln);
 	}
@@ -2441,7 +2458,8 @@ bldplmi(op_t op, tnode_t *ln, tnode_t *r
 	type_t	*tp;
 
 	/* If pointer and integer, then pointer to the lhs. */
-	if (rn->tn_type->t_tspec == PTR && isityp(ln->tn_type->t_tspec)) {
+	if (rn->tn_type->t_tspec == PTR &&
+	    tspec_is_int(ln->tn_type->t_tspec)) {
 		ntn = ln;
 		ln = rn;
 		rn = ntn;
@@ -2449,7 +2467,7 @@ bldplmi(op_t op, tnode_t *ln, tnode_t *r
 
 	if (ln->tn_type->t_tspec == PTR && rn->tn_type->t_tspec != PTR) {
 
-		if (!isityp(rn->tn_type->t_tspec))
+		if (!tspec_is_int(rn->tn_type->t_tspec))
 			LERROR("bldplmi()");
 
 		ctn = plength(ln->tn_type);
@@ -2521,7 +2539,7 @@ bldcol(tnode_t *ln, tnode_t *rn)
 	 * Arithmetic types are balanced, all other type combinations
 	 * still need to be handled.
 	 */
-	if (isatyp(lt) && isatyp(rt)) {
+	if (tspec_is_arith(lt) && tspec_is_arith(rt)) {
 		rtp = ln->tn_type;
 	} else if (lt == VOID || rt == VOID) {
 		rtp = gettyp(VOID);
@@ -2537,13 +2555,13 @@ bldcol(tnode_t *ln, tnode_t *rn)
 			return (NULL);
 		}
 		rtp = ln->tn_type;
-	} else if (lt == PTR && isityp(rt)) {
+	} else if (lt == PTR && tspec_is_int(rt)) {
 		if (rt != pdt) {
 			rn = convert(NOOP, 0, gettyp(pdt), rn);
 			rt = pdt;
 		}
 		rtp = ln->tn_type;
-	} else if (rt == PTR && isityp(lt)) {
+	} else if (rt == PTR && tspec_is_int(lt)) {
 		if (lt != pdt) {
 			ln = convert(NOOP, 0, gettyp(pdt), ln);
 			lt = pdt;
@@ -2593,7 +2611,7 @@ bldasgn(op_t op, tnode_t *ln, tnode_t *r
 	rt = rn->tn_type->t_tspec;
 
 	if ((op == ADDASS || op == SUBASS) && lt == PTR) {
-		if (!isityp(rt))
+		if (!tspec_is_int(rt))
 			LERROR("bldasgn()");
 		ctn = plength(ln->tn_type);
 		if (rn->tn_type->t_tspec != ctn->tn_type->t_tspec)
@@ -2732,7 +2750,7 @@ fold(tnode_t *tn)
 	v = xcalloc(1, sizeof (val_t));
 	v->v_tspec = t = tn->tn_type->t_tspec;
 
-	utyp = t == PTR || isutyp(t);
+	utyp = t == PTR || tspec_is_uint(t);
 	ul = sl = tn->tn_left->tn_val->v_quad;
 	if (modtab[tn->tn_op].m_binary)
 		ur = sr = tn->tn_right->tn_val->v_quad;
@@ -2874,14 +2892,14 @@ foldtst(tnode_t *tn)
 	if (tn->tn_type->t_tspec != INT)
 		LERROR("foldtst()");
 
-	if (isftyp(tn->tn_left->tn_type->t_tspec)) {
+	if (tspec_is_float(tn->tn_left->tn_type->t_tspec)) {
 		l = tn->tn_left->tn_val->v_ldbl != 0.0;
 	} else {
 		l = tn->tn_left->tn_val->v_quad != 0;
 	}
 
 	if (modtab[tn->tn_op].m_binary) {
-		if (isftyp(tn->tn_right->tn_type->t_tspec)) {
+		if (tspec_is_float(tn->tn_right->tn_type->t_tspec)) {
 			r = tn->tn_right->tn_val->v_ldbl != 0.0;
 		} else {
 			r = tn->tn_right->tn_val->v_quad != 0;
@@ -2922,7 +2940,7 @@ foldflt(tnode_t *tn)
 	v = xcalloc(1, sizeof (val_t));
 	v->v_tspec = t = tn->tn_type->t_tspec;
 
-	if (!isftyp(t))
+	if (!tspec_is_float(t))
 		LERROR("foldflt()");
 
 	if (t != tn->tn_left->tn_type->t_tspec)
@@ -3211,11 +3229,11 @@ cast(tnode_t *tn, type_t *tp)
 		/* improper cast of void expression */
 		error(148);
 		return (NULL);
-	} else if (isityp(nt) && issclt(ot)) {
+	} else if (tspec_is_int(nt) && tspec_is_scalar(ot)) {
 		/* ok */
-	} else if (isftyp(nt) && isatyp(ot)) {
+	} else if (tspec_is_float(nt) && tspec_is_arith(ot)) {
 		/* ok */
-	} else if (nt == PTR && isityp(ot)) {
+	} else if (nt == PTR && tspec_is_int(ot)) {
 		/* ok */
 	} else if (nt == PTR && ot == PTR) {
 		if (!tp->t_subt->t_const && tn->tn_type->t_subt->t_const) {
@@ -3346,7 +3364,8 @@ chkfarg(type_t *ftp, tnode_t *args)
 			/* argument cannot have unknown size, arg #%d */
 			error(152, n);
 			return (NULL);
-		} else if (isityp(at) && arg->tn_left->tn_type->t_isenum &&
+		} else if (tspec_is_int(at) &&
+			   arg->tn_left->tn_type->t_isenum &&
 			   incompl(arg->tn_left->tn_type)) {
 			/* argument cannot have unknown size, arg #%d */
 			warning(152, n);
@@ -3425,7 +3444,7 @@ constant(tnode_t *tn, int required)
 	if (tn->tn_op == CON) {
 		if (tn->tn_type->t_tspec != tn->tn_val->v_tspec)
 			LERROR("constant()");
-		if (isityp(tn->tn_val->v_tspec)) {
+		if (tspec_is_int(tn->tn_val->v_tspec)) {
 			v->v_ansiu = tn->tn_val->v_ansiu;
 			v->v_quad = tn->tn_val->v_quad;
 			return (v);
@@ -3441,7 +3460,7 @@ constant(tnode_t *tn, int required)
 	else
 		c99ism(318);
 
-	if (!isityp(v->v_tspec))
+	if (!tspec_is_int(v->v_tspec))
 		v->v_tspec = INT;
 
 	return (v);
@@ -3558,9 +3577,9 @@ displexpr(tnode_t *tn, int offs)
 	if (tn->tn_op == NAME) {
 		(void)printf("%s: %s ",
 			     tn->tn_sym->s_name, scltoa(tn->tn_sym->s_scl));
-	} else if (tn->tn_op == CON && isftyp(tn->tn_type->t_tspec)) {
+	} else if (tn->tn_op == CON && tspec_is_float(tn->tn_type->t_tspec)) {
 		(void)printf("%#g ", (double)tn->tn_val->v_ldbl);
-	} else if (tn->tn_op == CON && isityp(tn->tn_type->t_tspec)) {
+	} else if (tn->tn_op == CON && tspec_is_int(tn->tn_type->t_tspec)) {
 		uq = tn->tn_val->v_quad;
 		(void)printf("0x %08lx %08lx ", (long)(uq >> 32) & 0xffffffffl,
 			     (long)uq & 0xffffffffl);
@@ -3817,7 +3836,7 @@ chkaidx(tnode_t *tn, int amper)
 	elsz /= CHAR_BIT;
 
 	/* Change the unit of the index from bytes to element size. */
-	if (isutyp(rn->tn_type->t_tspec)) {
+	if (tspec_is_uint(rn->tn_type->t_tspec)) {
 		con = (uint64_t)rn->tn_val->v_quad / elsz;
 	} else {
 		con = rn->tn_val->v_quad / elsz;
@@ -3825,7 +3844,7 @@ chkaidx(tnode_t *tn, int amper)
 
 	dim = ln->tn_left->tn_type->t_dim + (amper ? 1 : 0);
 
-	if (!isutyp(rn->tn_type->t_tspec) && con < 0) {
+	if (!tspec_is_uint(rn->tn_type->t_tspec) && con < 0) {
 		/* array subscript cannot be negative: %ld */
 		warning(167, (long)con);
 	} else if (dim > 0 && (uint64_t)con >= (uint64_t)dim) {
@@ -3851,7 +3870,7 @@ chkcomp(op_t op, tnode_t *ln, tnode_t *r
 	if (ln->tn_op != CON && rn->tn_op != CON)
 		return;
 
-	if (!isityp(lt) || !isityp(rt))
+	if (!tspec_is_int(lt) || !tspec_is_int(rt))
 		return;
 
 	if ((hflag || pflag) && lt == CHAR && rn->tn_op == CON &&
@@ -3868,7 +3887,7 @@ chkcomp(op_t op, tnode_t *ln, tnode_t *r
 		warning(230, mp->m_name);
 		return;
 	}
-	if (isutyp(lt) && !isutyp(rt) &&
+	if (tspec_is_uint(lt) && !tspec_is_uint(rt) &&
 	    rn->tn_op == CON && rn->tn_val->v_quad <= 0) {
 		if (rn->tn_val->v_quad < 0) {
 			/* comparison of %s with %s, op %s */
@@ -3881,7 +3900,7 @@ chkcomp(op_t op, tnode_t *ln, tnode_t *r
 		}
 		return;
 	}
-	if (isutyp(rt) && !isutyp(lt) &&
+	if (tspec_is_uint(rt) && !tspec_is_uint(lt) &&
 	    ln->tn_op == CON && ln->tn_val->v_quad <= 0) {
 		if (ln->tn_val->v_quad < 0) {
 			/* comparison of %s with %s, op %s */
@@ -3956,8 +3975,10 @@ conaddr(tnode_t *tn, sym_t **symp, ptrdi
 	case CVT:
 		t = tn->tn_type->t_tspec;
 		ot = tn->tn_left->tn_type->t_tspec;
-		if ((!isityp(t) && t != PTR) || (!isityp(ot) && ot != PTR))
+		if ((!tspec_is_int(t) && t != PTR) ||
+		    (!tspec_is_int(ot) && ot != PTR)) {
 			return (-1);
+		}
 #ifdef notdef
 		/*
 		 * consider:

Index: src/usr.bin/xlint/lint2/chk.c
diff -u src/usr.bin/xlint/lint2/chk.c:1.23 src/usr.bin/xlint/lint2/chk.c:1.24
--- src/usr.bin/xlint/lint2/chk.c:1.23	Tue Dec 26 17:02:19 2017
+++ src/usr.bin/xlint/lint2/chk.c	Mon Dec 28 18:49:02 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: chk.c,v 1.23 2017/12/26 17:02:19 christos Exp $ */
+/* $NetBSD: chk.c,v 1.24 2020/12/28 18:49:02 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: chk.c,v 1.23 2017/12/26 17:02:19 christos Exp $");
+__RCSID("$NetBSD: chk.c,v 1.24 2020/12/28 18:49:02 rillig Exp $");
 #endif
 
 #include <ctype.h>
@@ -495,7 +495,8 @@ chkau(hte_t *hte, int n, sym_t *def, sym
 	 */
 	t1 = arg1->t_tspec;
 	t2 = arg2->t_tspec;
-	if (isityp(t1) && isityp(t2) && !arg1->t_isenum && !arg2->t_isenum) {
+	if (tspec_is_int(t1) && tspec_is_int(t2) &&
+	    !arg1->t_isenum && !arg2->t_isenum) {
 		if (promote) {
 			/*
 			 * XXX Here is a problem: Althrough it is possible to
@@ -573,7 +574,7 @@ chkau(hte_t *hte, int n, sym_t *def, sym
 			}
 		}
 
-	} else if (t1 == PTR && isityp(t2)) {
+	} else if (t1 == PTR && tspec_is_int(t2)) {
 		for (ai = call->f_args; ai != NULL; ai = ai->a_nxt) {
 			if (ai->a_num == n)
 				break;

Reply via email to