Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/usr.bin/xlint/lint1 lint: only define GCC builtins if -g is ...
details: https://anonhg.NetBSD.org/src/rev/f899b3e027ec
branches: trunk
changeset: 1020034:f899b3e027ec
user: rillig <rillig%NetBSD.org@localhost>
date: Sun Mar 28 15:36:37 2021 +0000
description:
lint: only define GCC builtins if -g is given
This removes 7 wrong warnings when running lint in -t mode.
Surprisingly, this added a warning that had not been there before in
msg_189.c. This is because check_variable_usage skips the checks when
an error occurred before. All diagnostics that happened were warnings,
but the -w option treats them as errors, see vwarning.
diffstat:
tests/usr.bin/xlint/lint1/msg_050.exp | 7 -------
tests/usr.bin/xlint/lint1/msg_054.exp | 7 -------
tests/usr.bin/xlint/lint1/msg_081.exp | 7 -------
tests/usr.bin/xlint/lint1/msg_082.exp | 7 -------
tests/usr.bin/xlint/lint1/msg_100.exp | 7 -------
tests/usr.bin/xlint/lint1/msg_186.exp | 7 -------
tests/usr.bin/xlint/lint1/msg_188.exp | 7 -------
tests/usr.bin/xlint/lint1/msg_189.c | 3 ++-
tests/usr.bin/xlint/lint1/msg_189.exp | 8 +-------
tests/usr.bin/xlint/lint1/msg_219.exp | 7 -------
usr.bin/xlint/lint1/main1.c | 16 +++++++++-------
11 files changed, 12 insertions(+), 71 deletions(-)
diffs (171 lines):
diff -r cc5b981c5bac -r f899b3e027ec tests/usr.bin/xlint/lint1/msg_050.exp
--- a/tests/usr.bin/xlint/lint1/msg_050.exp Sun Mar 28 15:12:20 2021 +0000
+++ b/tests/usr.bin/xlint/lint1/msg_050.exp Sun Mar 28 15:36:37 2021 +0000
@@ -1,9 +1,2 @@
-(1): warning: 'long double' is illegal in traditional C [266]
-(1): warning: function prototypes are illegal in traditional C [270]
-(2): warning: 'long double' is illegal in traditional C [266]
-(2): warning: function prototypes are illegal in traditional C [270]
-(3): warning: 'long double' is illegal in traditional C [266]
-(3): warning: 'long double' is illegal in traditional C [266]
-(3): warning: function prototypes are illegal in traditional C [270]
msg_050.c(11): warning: a function is declared as an argument: f [50]
msg_050.c(10): warning: argument f unused in function example [231]
diff -r cc5b981c5bac -r f899b3e027ec tests/usr.bin/xlint/lint1/msg_054.exp
--- a/tests/usr.bin/xlint/lint1/msg_054.exp Sun Mar 28 15:12:20 2021 +0000
+++ b/tests/usr.bin/xlint/lint1/msg_054.exp Sun Mar 28 15:36:37 2021 +0000
@@ -1,8 +1,1 @@
-(1): warning: 'long double' is illegal in traditional C [266]
-(1): warning: function prototypes are illegal in traditional C [270]
-(2): warning: 'long double' is illegal in traditional C [266]
-(2): warning: function prototypes are illegal in traditional C [270]
-(3): warning: 'long double' is illegal in traditional C [266]
-(3): warning: 'long double' is illegal in traditional C [266]
-(3): warning: function prototypes are illegal in traditional C [270]
msg_054.c(12): warning: trailing ',' prohibited in enum declaration [54]
diff -r cc5b981c5bac -r f899b3e027ec tests/usr.bin/xlint/lint1/msg_081.exp
--- a/tests/usr.bin/xlint/lint1/msg_081.exp Sun Mar 28 15:12:20 2021 +0000
+++ b/tests/usr.bin/xlint/lint1/msg_081.exp Sun Mar 28 15:36:37 2021 +0000
@@ -1,8 +1,1 @@
-(1): warning: 'long double' is illegal in traditional C [266]
-(1): warning: function prototypes are illegal in traditional C [270]
-(2): warning: 'long double' is illegal in traditional C [266]
-(2): warning: function prototypes are illegal in traditional C [270]
-(3): warning: 'long double' is illegal in traditional C [266]
-(3): warning: 'long double' is illegal in traditional C [266]
-(3): warning: function prototypes are illegal in traditional C [270]
msg_081.c(8): warning: \a undefined in traditional C [81]
diff -r cc5b981c5bac -r f899b3e027ec tests/usr.bin/xlint/lint1/msg_082.exp
--- a/tests/usr.bin/xlint/lint1/msg_082.exp Sun Mar 28 15:12:20 2021 +0000
+++ b/tests/usr.bin/xlint/lint1/msg_082.exp Sun Mar 28 15:36:37 2021 +0000
@@ -1,8 +1,1 @@
-(1): warning: 'long double' is illegal in traditional C [266]
-(1): warning: function prototypes are illegal in traditional C [270]
-(2): warning: 'long double' is illegal in traditional C [266]
-(2): warning: function prototypes are illegal in traditional C [270]
-(3): warning: 'long double' is illegal in traditional C [266]
-(3): warning: 'long double' is illegal in traditional C [266]
-(3): warning: function prototypes are illegal in traditional C [270]
msg_082.c(8): warning: \x undefined in traditional C [82]
diff -r cc5b981c5bac -r f899b3e027ec tests/usr.bin/xlint/lint1/msg_100.exp
--- a/tests/usr.bin/xlint/lint1/msg_100.exp Sun Mar 28 15:12:20 2021 +0000
+++ b/tests/usr.bin/xlint/lint1/msg_100.exp Sun Mar 28 15:36:37 2021 +0000
@@ -1,9 +1,2 @@
-(1): warning: 'long double' is illegal in traditional C [266]
-(1): warning: function prototypes are illegal in traditional C [270]
-(2): warning: 'long double' is illegal in traditional C [266]
-(2): warning: function prototypes are illegal in traditional C [270]
-(3): warning: 'long double' is illegal in traditional C [266]
-(3): warning: 'long double' is illegal in traditional C [266]
-(3): warning: function prototypes are illegal in traditional C [270]
msg_100.c(10): warning: function prototypes are illegal in traditional C [270]
msg_100.c(11): warning: unary + is illegal in traditional C [100]
diff -r cc5b981c5bac -r f899b3e027ec tests/usr.bin/xlint/lint1/msg_186.exp
--- a/tests/usr.bin/xlint/lint1/msg_186.exp Sun Mar 28 15:12:20 2021 +0000
+++ b/tests/usr.bin/xlint/lint1/msg_186.exp Sun Mar 28 15:36:37 2021 +0000
@@ -1,8 +1,1 @@
-(1): warning: 'long double' is illegal in traditional C [266]
-(1): warning: function prototypes are illegal in traditional C [270]
-(2): warning: 'long double' is illegal in traditional C [266]
-(2): warning: function prototypes are illegal in traditional C [270]
-(3): warning: 'long double' is illegal in traditional C [266]
-(3): warning: 'long double' is illegal in traditional C [266]
-(3): warning: function prototypes are illegal in traditional C [270]
msg_186.c(16): warning: bit-field initialization is illegal in traditional C [186]
diff -r cc5b981c5bac -r f899b3e027ec tests/usr.bin/xlint/lint1/msg_188.exp
--- a/tests/usr.bin/xlint/lint1/msg_188.exp Sun Mar 28 15:12:20 2021 +0000
+++ b/tests/usr.bin/xlint/lint1/msg_188.exp Sun Mar 28 15:36:37 2021 +0000
@@ -1,8 +1,1 @@
-(1): warning: 'long double' is illegal in traditional C [266]
-(1): warning: function prototypes are illegal in traditional C [270]
-(2): warning: 'long double' is illegal in traditional C [266]
-(2): warning: function prototypes are illegal in traditional C [270]
-(3): warning: 'long double' is illegal in traditional C [266]
-(3): warning: 'long double' is illegal in traditional C [266]
-(3): warning: function prototypes are illegal in traditional C [270]
msg_188.c(21): warning: no automatic aggregate initialization in traditional C [188]
diff -r cc5b981c5bac -r f899b3e027ec tests/usr.bin/xlint/lint1/msg_189.c
--- a/tests/usr.bin/xlint/lint1/msg_189.c Sun Mar 28 15:12:20 2021 +0000
+++ b/tests/usr.bin/xlint/lint1/msg_189.c Sun Mar 28 15:36:37 2021 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: msg_189.c,v 1.2 2021/01/30 17:56:29 rillig Exp $ */
+/* $NetBSD: msg_189.c,v 1.3 2021/03/28 15:36:37 rillig Exp $ */
# 3 "msg_189.c"
/* Test for message: assignment of struct/union illegal in traditional C [189] */
@@ -16,4 +16,5 @@
a.member = 3;
b = a; /* message 189 is not triggered anymore */
+ /* expect-1: b set but not used in function example */
}
diff -r cc5b981c5bac -r f899b3e027ec tests/usr.bin/xlint/lint1/msg_189.exp
--- a/tests/usr.bin/xlint/lint1/msg_189.exp Sun Mar 28 15:12:20 2021 +0000
+++ b/tests/usr.bin/xlint/lint1/msg_189.exp Sun Mar 28 15:36:37 2021 +0000
@@ -1,7 +1,1 @@
-(1): warning: 'long double' is illegal in traditional C [266]
-(1): warning: function prototypes are illegal in traditional C [270]
-(2): warning: 'long double' is illegal in traditional C [266]
-(2): warning: function prototypes are illegal in traditional C [270]
-(3): warning: 'long double' is illegal in traditional C [266]
-(3): warning: 'long double' is illegal in traditional C [266]
-(3): warning: function prototypes are illegal in traditional C [270]
+msg_189.c(18): warning: b set but not used in function example [191]
diff -r cc5b981c5bac -r f899b3e027ec tests/usr.bin/xlint/lint1/msg_219.exp
--- a/tests/usr.bin/xlint/lint1/msg_219.exp Sun Mar 28 15:12:20 2021 +0000
+++ b/tests/usr.bin/xlint/lint1/msg_219.exp Sun Mar 28 15:36:37 2021 +0000
@@ -1,10 +1,3 @@
-(1): warning: 'long double' is illegal in traditional C [266]
-(1): warning: function prototypes are illegal in traditional C [270]
-(2): warning: 'long double' is illegal in traditional C [266]
-(2): warning: function prototypes are illegal in traditional C [270]
-(3): warning: 'long double' is illegal in traditional C [266]
-(3): warning: 'long double' is illegal in traditional C [266]
-(3): warning: function prototypes are illegal in traditional C [270]
msg_219.c(10): warning: concatenated strings are illegal in traditional C [219]
msg_219.c(11): warning: concatenated strings are illegal in traditional C [219]
msg_219.c(12): warning: concatenated strings are illegal in traditional C [219]
diff -r cc5b981c5bac -r f899b3e027ec usr.bin/xlint/lint1/main1.c
--- a/usr.bin/xlint/lint1/main1.c Sun Mar 28 15:12:20 2021 +0000
+++ b/usr.bin/xlint/lint1/main1.c Sun Mar 28 15:36:37 2021 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: main1.c,v 1.40 2021/03/27 11:50:34 rillig Exp $ */
+/* $NetBSD: main1.c,v 1.41 2021/03/28 15:36:37 rillig Exp $ */
/*
* Copyright (c) 1994, 1995 Jochen Pohl
@@ -37,7 +37,7 @@
#include <sys/cdefs.h>
#if defined(__RCSID) && !defined(lint)
-__RCSID("$NetBSD: main1.c,v 1.40 2021/03/27 11:50:34 rillig Exp $");
+__RCSID("$NetBSD: main1.c,v 1.41 2021/03/28 15:36:37 rillig Exp $");
#endif
#include <sys/types.h>
@@ -138,7 +138,7 @@
static const size_t builtinlen = sizeof builtins - 1;
static FILE *
-bltin(void)
+gcc_builtins(void)
{
#if HAVE_NBTOOL_CONFIG_H
char template[] = "/tmp/lint.XXXXXX";
@@ -254,10 +254,12 @@
initdecl();
initscan();
- if ((yyin = bltin()) == NULL)
- err(1, "cannot open builtins");
- yyparse();
- fclose(yyin);
+ if (gflag) {
+ if ((yyin = gcc_builtins()) == NULL)
+ err(1, "cannot open builtins");
+ yyparse();
+ fclose(yyin);
+ }
/* open the input file */
if ((yyin = fopen(argv[0], "r")) == NULL)
Home |
Main Index |
Thread Index |
Old Index