Module Name: src Committed By: rillig Date: Sat Apr 10 18:36:28 UTC 2021
Modified Files: src/usr.bin/xlint/common: lint.h tyname.c src/usr.bin/xlint/lint1: Makefile lint1.h src/usr.bin/xlint/lint2: Makefile lint2.h Log Message: lint: use distinct struct tags for type_t in lint1 and lint2 Having two similar but still different definitions of 'struct type' is unnecessarily confusing. Exchange this confusion for 8 lines of straight-forward preprocessing code. To generate a diff of this commit: cvs rdiff -u -r1.26 -r1.27 src/usr.bin/xlint/common/lint.h cvs rdiff -u -r1.38 -r1.39 src/usr.bin/xlint/common/tyname.c cvs rdiff -u -r1.66 -r1.67 src/usr.bin/xlint/lint1/Makefile cvs rdiff -u -r1.93 -r1.94 src/usr.bin/xlint/lint1/lint1.h cvs rdiff -u -r1.18 -r1.19 src/usr.bin/xlint/lint2/Makefile cvs rdiff -u -r1.13 -r1.14 src/usr.bin/xlint/lint2/lint2.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/common/lint.h diff -u src/usr.bin/xlint/common/lint.h:1.26 src/usr.bin/xlint/common/lint.h:1.27 --- src/usr.bin/xlint/common/lint.h:1.26 Sun Feb 28 18:51:51 2021 +++ src/usr.bin/xlint/common/lint.h Sat Apr 10 18:36:27 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: lint.h,v 1.26 2021/02/28 18:51:51 rillig Exp $ */ +/* $NetBSD: lint.h,v 1.27 2021/04/10 18:36:27 rillig Exp $ */ /* * Copyright (c) 1994, 1995 Jochen Pohl @@ -135,7 +135,11 @@ typedef struct ob { char *o_next; /* next free byte in buffer */ } ob_t; -typedef struct type type_t; +#if defined(IS_LINT1) +typedef struct lint1_type type_t; +#else +typedef struct lint2_type type_t; +#endif #include "externs.h" Index: src/usr.bin/xlint/common/tyname.c diff -u src/usr.bin/xlint/common/tyname.c:1.38 src/usr.bin/xlint/common/tyname.c:1.39 --- src/usr.bin/xlint/common/tyname.c:1.38 Fri Apr 9 19:37:39 2021 +++ src/usr.bin/xlint/common/tyname.c Sat Apr 10 18:36:27 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: tyname.c,v 1.38 2021/04/09 19:37:39 rillig Exp $ */ +/* $NetBSD: tyname.c,v 1.39 2021/04/10 18:36:27 rillig Exp $ */ /*- * Copyright (c) 2005 The NetBSD Foundation, Inc. @@ -35,7 +35,7 @@ #include <sys/cdefs.h> #if defined(__RCSID) && !defined(lint) -__RCSID("$NetBSD: tyname.c,v 1.38 2021/04/09 19:37:39 rillig Exp $"); +__RCSID("$NetBSD: tyname.c,v 1.39 2021/04/10 18:36:27 rillig Exp $"); #endif #include <limits.h> @@ -43,7 +43,11 @@ __RCSID("$NetBSD: tyname.c,v 1.38 2021/0 #include <stdlib.h> #include <err.h> -#include PASS +#if defined(IS_LINT1) +#include "lint1.h" +#else +#include "lint2.h" +#endif #ifndef INTERNAL_ERROR #define INTERNAL_ERROR(fmt, args...) \ Index: src/usr.bin/xlint/lint1/Makefile diff -u src/usr.bin/xlint/lint1/Makefile:1.66 src/usr.bin/xlint/lint1/Makefile:1.67 --- src/usr.bin/xlint/lint1/Makefile:1.66 Tue Apr 6 13:17:04 2021 +++ src/usr.bin/xlint/lint1/Makefile Sat Apr 10 18:36:27 2021 @@ -1,4 +1,4 @@ -# $NetBSD: Makefile,v 1.66 2021/04/06 13:17:04 rillig Exp $ +# $NetBSD: Makefile,v 1.67 2021/04/10 18:36:27 rillig Exp $ .include <bsd.own.mk> @@ -18,7 +18,8 @@ YHEADER= CWARNFLAGS.clang+= -Wno-error=implicit-int-float-conversion LINTFLAGS+= -T -CPPFLAGS+= -I${.CURDIR} -I. -DPASS=\"${PROG}.h\" +CPPFLAGS+= -DIS_LINT1 +CPPFLAGS+= -I${.CURDIR} CPPFLAGS+= ${DEBUG:D-DDEBUG} BINDIR= /usr/libexec Index: src/usr.bin/xlint/lint1/lint1.h diff -u src/usr.bin/xlint/lint1/lint1.h:1.93 src/usr.bin/xlint/lint1/lint1.h:1.94 --- src/usr.bin/xlint/lint1/lint1.h:1.93 Sat Apr 10 18:06:53 2021 +++ src/usr.bin/xlint/lint1/lint1.h Sat Apr 10 18:36:27 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: lint1.h,v 1.93 2021/04/10 18:06:53 rillig Exp $ */ +/* $NetBSD: lint1.h,v 1.94 2021/04/10 18:36:27 rillig Exp $ */ /* * Copyright (c) 1996 Christopher G. Demetriou. All Rights Reserved. @@ -148,7 +148,7 @@ typedef struct { * The type of an expression or object. Complex types are formed via t_subt * (for arrays, pointers and functions), as well as t_str. */ -struct type { +struct lint1_type { tspec_t t_tspec; /* type specifier */ bool t_incomplete_array : 1; bool t_const : 1; /* const modifier */ @@ -169,8 +169,9 @@ struct type { u_int _t_flen : 8; /* length of bit-field */ u_int _t_foffs : 24; /* offset of bit-field */ } t_b; - struct type *t_subt; /* element type (arrays), return value - (functions), or type pointer points to */ + struct lint1_type *t_subt; /* element type (if ARRAY), + * return value (if FUNC), + * target type (if PTR) */ }; #define t_dim t_u._t_dim Index: src/usr.bin/xlint/lint2/Makefile diff -u src/usr.bin/xlint/lint2/Makefile:1.18 src/usr.bin/xlint/lint2/Makefile:1.19 --- src/usr.bin/xlint/lint2/Makefile:1.18 Sat Jan 16 00:09:28 2021 +++ src/usr.bin/xlint/lint2/Makefile Sat Apr 10 18:36:27 2021 @@ -1,4 +1,4 @@ -# $NetBSD: Makefile,v 1.18 2021/01/16 00:09:28 rillig Exp $ +# $NetBSD: Makefile,v 1.19 2021/04/10 18:36:27 rillig Exp $ NOMAN= # defined @@ -6,6 +6,6 @@ PROG= lint2 SRCS= main2.c hash.c read.c mem.c mem2.c chk.c msg.c emit.c emit2.c \ inittyp.c tyname.c BINDIR= /usr/libexec -CPPFLAGS+= -DPASS=\"${PROG}.h\" -I${.CURDIR} +CPPFLAGS+= -I${.CURDIR} .include <bsd.prog.mk> Index: src/usr.bin/xlint/lint2/lint2.h diff -u src/usr.bin/xlint/lint2/lint2.h:1.13 src/usr.bin/xlint/lint2/lint2.h:1.14 --- src/usr.bin/xlint/lint2/lint2.h:1.13 Fri Feb 19 22:27:49 2021 +++ src/usr.bin/xlint/lint2/lint2.h Sat Apr 10 18:36:27 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: lint2.h,v 1.13 2021/02/19 22:27:49 rillig Exp $ */ +/* $NetBSD: lint2.h,v 1.14 2021/04/10 18:36:27 rillig Exp $ */ /* * Copyright (c) 1996 Christopher G. Demetriou. All Rights Reserved. @@ -37,7 +37,7 @@ /* * Types are described by structures of type type_t. */ -struct type { +struct lint2_type { tspec_t t_tspec; /* type specifier */ bool t_const : 1; /* constant */ bool t_volatile : 1; /* volatile */ @@ -61,11 +61,12 @@ struct type { } _t_uniqpos; /* unique position, for untagged untyped STRUCTs, UNIONS, and ENUMs, if t_isuniqpos */ - struct type **_t_args; /* list of argument types if this - is a prototype */ + struct lint2_type **_t_args; /* list of argument types if + this is a prototype */ } t_u; - struct type *t_subt; /* indirected type (array element, pointed to - type, type of return value) */ + struct lint2_type *t_subt; /* element type (if ARRAY), + return type (if FUNC), + target type (if PTR) */ }; #define t_dim t_u._t_dim @@ -181,7 +182,7 @@ typedef struct hte { usym_t *h_usyms; /* usage info */ usym_t **h_lusym; /* points to u_next of last usage info */ struct hte *h_link; /* next hte with same hash function */ - struct hte *h_hte; /* pointer to other htes (for renames */ + struct hte *h_hte; /* pointer to other htes (for renames) */ } hte_t; /* maps type indices into pointers to type structs */