From 5dab7737fedf6f56432ce16e7e3c1f30ad588fa8 Mon Sep 17 00:00:00 2001 From: Chad Loder Date: Thu, 1 Dec 2005 05:06:41 +0000 Subject: Make lint quieter by only warning on "foo declared but never used or defined" when foo is declared in the translation unit that lint is working on. This means that symbols that are declared in an included header file don't get this warning, ever. --- usr.bin/xlint/lint2/chk.c | 10 ++++++++-- usr.bin/xlint/lint2/externs2.h | 3 ++- usr.bin/xlint/lint2/read.c | 6 +++--- 3 files changed, 13 insertions(+), 6 deletions(-) (limited to 'usr.bin/xlint/lint2') diff --git a/usr.bin/xlint/lint2/chk.c b/usr.bin/xlint/lint2/chk.c index c9af43571cf..ff7e2765684 100644 --- a/usr.bin/xlint/lint2/chk.c +++ b/usr.bin/xlint/lint2/chk.c @@ -1,4 +1,4 @@ -/* $OpenBSD: chk.c,v 1.10 2005/11/20 17:42:50 deraadt Exp $ */ +/* $OpenBSD: chk.c,v 1.11 2005/12/01 05:06:40 cloder Exp $ */ /* $NetBSD: chk.c,v 1.2 1995/07/03 21:24:42 cgd Exp $ */ /* @@ -33,7 +33,7 @@ */ #ifndef lint -static char rcsid[] = "$OpenBSD: chk.c,v 1.10 2005/11/20 17:42:50 deraadt Exp $"; +static char rcsid[] = "$OpenBSD: chk.c,v 1.11 2005/12/01 05:06:40 cloder Exp $"; #endif #include @@ -270,6 +270,12 @@ chkdnud(hte_t *hte) if ((sym = hte->h_syms) != NULL) { if (sym->s_def != DECL) errx(1, "internal error: chkdnud() 1"); + + /* don't warn if the name was declared in a separate header */ + if (sym->s_pos.p_src != sym->s_pos.p_isrc) { + return; + } + /* %s declared( %s ), but never used or defined */ msg(2, hte->h_name, mkpos(&sym->s_pos)); } diff --git a/usr.bin/xlint/lint2/externs2.h b/usr.bin/xlint/lint2/externs2.h index 148eae113af..1b6a97f5fc0 100644 --- a/usr.bin/xlint/lint2/externs2.h +++ b/usr.bin/xlint/lint2/externs2.h @@ -1,4 +1,4 @@ -/* $OpenBSD: externs2.h,v 1.4 2002/02/17 19:42:35 millert Exp $ */ +/* $OpenBSD: externs2.h,v 1.5 2005/12/01 05:06:40 cloder Exp $ */ /* $NetBSD: externs2.h,v 1.2 1995/07/03 21:24:46 cgd Exp $ */ /* @@ -59,6 +59,7 @@ extern void forall(void (*)(hte_t *)); */ extern const char **fnames; extern type_t **tlst; +extern int csrcfile; extern void readfile(const char *); extern void mkstatic(hte_t *); diff --git a/usr.bin/xlint/lint2/read.c b/usr.bin/xlint/lint2/read.c index 3945ad22920..d59bf939d1d 100644 --- a/usr.bin/xlint/lint2/read.c +++ b/usr.bin/xlint/lint2/read.c @@ -1,4 +1,4 @@ -/* $OpenBSD: read.c,v 1.8 2005/11/30 18:47:10 deraadt Exp $ */ +/* $OpenBSD: read.c,v 1.9 2005/12/01 05:06:40 cloder Exp $ */ /* $NetBSD: read.c,v 1.2 1995/07/03 21:24:59 cgd Exp $ */ /* @@ -33,7 +33,7 @@ */ #ifndef lint -static char rcsid[] = "$OpenBSD: read.c,v 1.8 2005/11/30 18:47:10 deraadt Exp $"; +static char rcsid[] = "$OpenBSD: read.c,v 1.9 2005/12/01 05:06:40 cloder Exp $"; #endif #include @@ -80,7 +80,7 @@ type_t **tlst; /* array for indexed access */ static size_t tlstlen; /* length of tlst */ /* index of current C source file (as spezified at the command line) */ -static int csrcfile; +int csrcfile; static void inperr(void); -- cgit v1.2.3