summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorcloder <cloder@openbsd.org>2006-04-20 16:29:48 +0000
committercloder <cloder@openbsd.org>2006-04-20 16:29:48 +0000
commitd4bb5db6ced3419cd1e1d4ef45812a657288b60d (patch)
tree74b0bc4636697e422a9d94b0d75eb587acee11dc
parentANSI function declarations (diff)
downloadwireguard-openbsd-d4bb5db6ced3419cd1e1d4ef45812a657288b60d.tar.xz
wireguard-openbsd-d4bb5db6ced3419cd1e1d4ef45812a657288b60d.zip
Add a LINTUSED special comment which marks the following declared symbol(s)
as used so that lint2 doesn't complain. Prodded by deraadt
-rw-r--r--usr.bin/xlint/lint1/cgram.y7
-rw-r--r--usr.bin/xlint/lint1/externs1.h4
-rw-r--r--usr.bin/xlint/lint1/func.c21
-rw-r--r--usr.bin/xlint/lint1/scan.l6
4 files changed, 31 insertions, 7 deletions
diff --git a/usr.bin/xlint/lint1/cgram.y b/usr.bin/xlint/lint1/cgram.y
index d519b4786a3..5587b537cc7 100644
--- a/usr.bin/xlint/lint1/cgram.y
+++ b/usr.bin/xlint/lint1/cgram.y
@@ -1,5 +1,5 @@
%{
-/* $OpenBSD: cgram.y,v 1.17 2005/12/10 18:42:45 cloder Exp $ */
+/* $OpenBSD: cgram.y,v 1.18 2006/04/20 16:29:48 cloder Exp $ */
/* $NetBSD: cgram.y,v 1.8 1995/10/02 17:31:35 jpo Exp $ */
/*
@@ -34,7 +34,7 @@
*/
#ifndef lint
-static char rcsid[] = "$OpenBSD: cgram.y,v 1.17 2005/12/10 18:42:45 cloder Exp $";
+static char rcsid[] = "$OpenBSD: cgram.y,v 1.18 2006/04/20 16:29:48 cloder Exp $";
#endif
#include <stdlib.h>
@@ -1668,6 +1668,9 @@ idecl(sym_t *decl, int initflg)
initerr = 0;
initsym = decl;
+ if (usedflg)
+ setuflg(decl, 0, 0);
+
switch (dcs->d_ctx) {
case EXTERN:
decl1ext(decl, initflg);
diff --git a/usr.bin/xlint/lint1/externs1.h b/usr.bin/xlint/lint1/externs1.h
index 0962079563f..4a50ac3ffc9 100644
--- a/usr.bin/xlint/lint1/externs1.h
+++ b/usr.bin/xlint/lint1/externs1.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: externs1.h,v 1.11 2006/04/18 02:59:40 cloder Exp $ */
+/* $OpenBSD: externs1.h,v 1.12 2006/04/20 16:29:48 cloder Exp $ */
/* $NetBSD: externs1.h,v 1.7 1995/10/02 17:31:39 jpo Exp $ */
/*
@@ -226,6 +226,7 @@ extern int ccflg;
extern int llibflg;
extern int nowarn;
extern int noretflg;
+extern int usedflg;
extern int plibflg;
extern int quadflg;
@@ -253,6 +254,7 @@ extern void doreturn(tnode_t *);
extern void glclup(int);
extern void argsused(int);
extern void noreturn(int);
+extern void lintused(int);
extern void constcond(int);
extern void fallthru(int);
extern void notreach(int);
diff --git a/usr.bin/xlint/lint1/func.c b/usr.bin/xlint/lint1/func.c
index 5f68f9d6dc7..d909c51f6d1 100644
--- a/usr.bin/xlint/lint1/func.c
+++ b/usr.bin/xlint/lint1/func.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: func.c,v 1.13 2006/04/20 03:40:29 cloder Exp $ */
+/* $OpenBSD: func.c,v 1.14 2006/04/20 16:29:48 cloder Exp $ */
/* $NetBSD: func.c,v 1.7 1995/10/02 17:31:40 jpo Exp $ */
/*
@@ -33,7 +33,7 @@
*/
#ifndef lint
-static char rcsid[] = "$OpenBSD: func.c,v 1.13 2006/04/20 03:40:29 cloder Exp $";
+static char rcsid[] = "$OpenBSD: func.c,v 1.14 2006/04/20 16:29:48 cloder Exp $";
#endif
#include <stdlib.h>
@@ -90,6 +90,12 @@ pos_t aupos;
int noretflg = 0;
/*
+ * If the following symbol should be marked as having been used, even if
+ * lint thinks otherwise, usedflg is set to 1. Otherwise it is set to 0.
+ */
+int usedflg = 0;
+
+/*
* Number of arguments of the following function definition whose types
* shall be checked by lint2. -1 stands for all arguments.
*
@@ -1129,6 +1135,17 @@ noreturn(int n)
}
/*
+ * LINTUSED comment
+ *
+ * Mark a symbol as used, so lint2 does not complain.
+ */
+void
+lintused(int n)
+{
+ usedflg = 1;
+}
+
+/*
* VARARGS comment
*
* Makes that lint2 checks only the first n arguments for compatibility
diff --git a/usr.bin/xlint/lint1/scan.l b/usr.bin/xlint/lint1/scan.l
index 50802fa2afd..96a9ce5e7dd 100644
--- a/usr.bin/xlint/lint1/scan.l
+++ b/usr.bin/xlint/lint1/scan.l
@@ -1,5 +1,5 @@
%{
-/* $OpenBSD: scan.l,v 1.28 2006/03/13 21:12:32 moritz Exp $ */
+/* $OpenBSD: scan.l,v 1.29 2006/04/20 16:29:48 cloder Exp $ */
/* $NetBSD: scan.l,v 1.8 1995/10/23 13:38:51 jpo Exp $ */
/*
@@ -34,7 +34,7 @@
*/
#ifndef lint
-static char rcsid[] = "$OpenBSD: scan.l,v 1.28 2006/03/13 21:12:32 moritz Exp $";
+static char rcsid[] = "$OpenBSD: scan.l,v 1.29 2006/04/20 16:29:48 cloder Exp $";
#endif
#include <stdlib.h>
@@ -1061,6 +1061,7 @@ comment(void)
{ "FALLTHROUGH", 0, fallthru },
{ "LINTLIBRARY", 0, lintlib },
{ "LINTED", 0, linted },
+ { "LINTUSED", 0, lintused },
{ "LONGLONG", 0, longlong },
{ "NOSTRICT", 0, linted },
{ "NOTREACHED", 0, notreach },
@@ -1166,6 +1167,7 @@ clrwflgs(void)
nowarn = 0;
quadflg = 1;
ccflg = 0;
+ usedflg = 0;
}
/*