Module Name: src
Committed By: rillig
Date: Fri Apr 9 15:58:43 UTC 2021
Modified Files:
src/usr.bin/xlint/lint1: err.c externs1.h lex.c
Log Message:
lint: clean up handling of preprocessing output lines
No functional change.
To generate a diff of this commit:
cvs rdiff -u -r1.104 -r1.105 src/usr.bin/xlint/lint1/err.c
cvs rdiff -u -r1.102 -r1.103 src/usr.bin/xlint/lint1/externs1.h
cvs rdiff -u -r1.25 -r1.26 src/usr.bin/xlint/lint1/lex.c
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/lint1/err.c
diff -u src/usr.bin/xlint/lint1/err.c:1.104 src/usr.bin/xlint/lint1/err.c:1.105
--- src/usr.bin/xlint/lint1/err.c:1.104 Thu Apr 8 22:18:27 2021
+++ src/usr.bin/xlint/lint1/err.c Fri Apr 9 15:58:43 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: err.c,v 1.104 2021/04/08 22:18:27 rillig Exp $ */
+/* $NetBSD: err.c,v 1.105 2021/04/09 15:58:43 rillig Exp $ */
/*
* Copyright (c) 1994, 1995 Jochen Pohl
@@ -37,7 +37,7 @@
#include <sys/cdefs.h>
#if defined(__RCSID) && !defined(lint)
-__RCSID("$NetBSD: err.c,v 1.104 2021/04/08 22:18:27 rillig Exp $");
+__RCSID("$NetBSD: err.c,v 1.105 2021/04/09 15:58:43 rillig Exp $");
#endif
#include <sys/types.h>
@@ -407,8 +407,7 @@ static struct include_level {
void
-update_position(const char *filename, int lineno,
- bool is_begin, bool is_end, bool is_system)
+update_location(const char *filename, int lineno, bool is_begin, bool is_end)
{
struct include_level *top;
@@ -431,17 +430,20 @@ update_position(const char *filename, in
top->filename = filename;
top->lineno = lineno;
}
-
- in_system_header = is_system;
}
static void
print_stack_trace(void)
{
- struct include_level *top;
+ const struct include_level *top;
if ((top = includes) == NULL)
return;
+ /*
+ * Skip the innermost include level since it is already listed in the
+ * diagnostic itself. Furthermore, its lineno is the line number of
+ * the last '#' line, not the current line.
+ */
for (top = top->by; top != NULL; top = top->by)
printf("\tincluded from %s(%d)\n", top->filename, top->lineno);
}
Index: src/usr.bin/xlint/lint1/externs1.h
diff -u src/usr.bin/xlint/lint1/externs1.h:1.102 src/usr.bin/xlint/lint1/externs1.h:1.103
--- src/usr.bin/xlint/lint1/externs1.h:1.102 Thu Apr 8 22:18:27 2021
+++ src/usr.bin/xlint/lint1/externs1.h Fri Apr 9 15:58:43 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: externs1.h,v 1.102 2021/04/08 22:18:27 rillig Exp $ */
+/* $NetBSD: externs1.h,v 1.103 2021/04/09 15:58:43 rillig Exp $ */
/*
* Copyright (c) 1994, 1995 Jochen Pohl
@@ -128,7 +128,7 @@ extern void internal_error(const char *,
__attribute__((__noreturn__,__format__(__printf__, 3, 4)));
extern void assert_failed(const char *, int, const char *, const char *)
__attribute__((__noreturn__));
-extern void update_position(const char *, int, bool, bool, bool);
+extern void update_location(const char *, int, bool, bool);
/*
* decl.c
Index: src/usr.bin/xlint/lint1/lex.c
diff -u src/usr.bin/xlint/lint1/lex.c:1.25 src/usr.bin/xlint/lint1/lex.c:1.26
--- src/usr.bin/xlint/lint1/lex.c:1.25 Thu Apr 8 22:18:27 2021
+++ src/usr.bin/xlint/lint1/lex.c Fri Apr 9 15:58:43 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: lex.c,v 1.25 2021/04/08 22:18:27 rillig Exp $ */
+/* $NetBSD: lex.c,v 1.26 2021/04/09 15:58:43 rillig Exp $ */
/*
* Copyright (c) 1996 Christopher G. Demetriou. All Rights Reserved.
@@ -38,7 +38,7 @@
#include <sys/cdefs.h>
#if defined(__RCSID) && !defined(lint)
-__RCSID("$NetBSD: lex.c,v 1.25 2021/04/08 22:18:27 rillig Exp $");
+__RCSID("$NetBSD: lex.c,v 1.26 2021/04/09 15:58:43 rillig Exp $");
#endif
#include <ctype.h>
@@ -1151,8 +1151,8 @@ lex_directive(const char *yytext)
}
parse_line_directive_flags(cp, &is_begin, &is_end, &is_system);
- update_position(curr_pos.p_file, (int)ln,
- is_begin, is_end, is_system);
+ update_location(curr_pos.p_file, (int)ln, is_begin, is_end);
+ in_system_header = is_system;
}
curr_pos.p_line = (int)ln - 1;
curr_pos.p_uniq = 0;