aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorLuc Van Oostenryck <luc.vanoostenryck@gmail.com>2020-05-24 15:13:45 +0200
committerLuc Van Oostenryck <luc.vanoostenryck@gmail.com>2020-05-27 21:02:38 +0200
commit3fa54adf79940efa0515ab9946d1f48cff095cf0 (patch)
tree6975bf4aa950dc3c238de37aee1c2e0024bece47
parentf0fe1cd9e4fe2e937f452561b62c4ab9d0989ece (diff)
downloadsparse-3fa54adf79940efa0515ab9946d1f48cff095cf0.tar.gz
add an option to suppress warning 'no newline at EOF'
Some platforms have some of their system header files missing the ending newline. Sparse will then warn about it, again and again, and more important warnings can easily be lost in the noise. So, add an option flag '-W[no-]newline-eof' to conditionalize this warning. Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
-rw-r--r--lib.c2
-rw-r--r--lib.h1
-rw-r--r--sparse.17
-rw-r--r--tokenize.c2
4 files changed, 11 insertions, 1 deletions
diff --git a/lib.c b/lib.c
index 9ee8d3cf..7aca9cd0 100644
--- a/lib.c
+++ b/lib.c
@@ -272,6 +272,7 @@ int Wenum_mismatch = 1;
int Wexternal_function_has_definition = 1;
int Wsparse_error = 0;
int Wmemcpy_max_count = 1;
+int Wnewline_eof = 1;
int Wnon_pointer_null = 1;
int Wold_initializer = 1;
int Wold_style_definition = 1;
@@ -761,6 +762,7 @@ static const struct flag warnings[] = {
{ "int-to-pointer-cast", &Wint_to_pointer_cast },
{ "memcpy-max-count", &Wmemcpy_max_count },
{ "non-pointer-null", &Wnon_pointer_null },
+ { "newline-eof", &Wnewline_eof },
{ "old-initializer", &Wold_initializer },
{ "old-style-definition", &Wold_style_definition },
{ "one-bit-signed-bitfield", &Wone_bit_signed_bitfield },
diff --git a/lib.h b/lib.h
index 5e6db111..e767840c 100644
--- a/lib.h
+++ b/lib.h
@@ -161,6 +161,7 @@ extern int Wimplicit_int;
extern int Winit_cstring;
extern int Wint_to_pointer_cast;
extern int Wmemcpy_max_count;
+extern int Wnewline_eof;
extern int Wnon_pointer_null;
extern int Wold_initializer;
extern int Wold_style_definition;
diff --git a/sparse.1 b/sparse.1
index 50e92839..63b408e3 100644
--- a/sparse.1
+++ b/sparse.1
@@ -280,6 +280,13 @@ The limit can be changed with \fB\-fmemcpy\-max\-count=COUNT\fR,
the default being \fB100000\fR.
.
.TP
+.B \-Wnewline\-eof
+Warn if the input file doesn't end with a newline.
+
+Sparse issues these warnings by default. To turn them off, use
+\fB\-Wno\-newline\-eof\fR.
+.
+.TP
.B \-Wnon\-pointer\-null
Warn about the use of 0 as a NULL pointer.
diff --git a/tokenize.c b/tokenize.c
index d8bbef49..d3371e1e 100644
--- a/tokenize.c
+++ b/tokenize.c
@@ -411,7 +411,7 @@ got_eof:
c = '\\';
goto out;
}
- if (stream->pos)
+ if (stream->pos & Wnewline_eof)
warning(stream_pos(stream), "no newline at end of file");
else if (spliced)
warning(stream_pos(stream), "backslash-newline at end of file");