From 438ac94c9b141e04a7b2512298120f5724b521ed Mon Sep 17 00:00:00 2001 From: neil Date: Tue, 21 Aug 2001 21:17:48 +0000 Subject: * cppfiles.c (stack_include_file): Don't handle -H here. * cppinit.c (cpp_start_read): Set include tracing after cpp_post_options and after stacking the main file. * line-map.c (trace_include): New. (init_line_maps, add_line_map): Update. * line-map.h (struct line_maps): New member trace_includes. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@45084 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/line-map.c | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) (limited to 'gcc/line-map.c') diff --git a/gcc/line-map.c b/gcc/line-map.c index d1df5572b83..b2809b1510c 100644 --- a/gcc/line-map.c +++ b/gcc/line-map.c @@ -25,6 +25,9 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #include "line-map.h" #include "intl.h" +static void trace_include + PARAMS ((const struct line_maps *, const struct line_map *)); + /* Initialize a line map set. */ void @@ -35,6 +38,7 @@ init_line_maps (set) set->allocated = 0; set->used = 0; set->last_listed = -1; + set->trace_includes = false; } /* Free a line map set. */ @@ -136,8 +140,11 @@ add_line_map (set, reason, sysp, from_line, to_file, to_line) map->included_from = map[-1].included_from; else if (reason == LC_LEAVE) map->included_from = INCLUDED_FROM (set, map - 1)->included_from; - set->used++; + + if (reason == LC_ENTER && set->trace_includes) + trace_include (set, map); + return map; } @@ -207,3 +214,17 @@ print_containing_files (set, map) fputs (":\n", stderr); } + +/* Print an include trace, for e.g. the -H option of the preprocessor. */ + +static void +trace_include (set, map) + const struct line_maps *set; + const struct line_map *map; +{ + const struct line_map *m; + + for (m = map; !MAIN_FILE_P (m); m = INCLUDED_FROM (set, m)) + putc ('.', stderr); + fprintf (stderr, " %s\n", map->to_file); +} -- cgit v1.2.1