diff options
author | neil <neil@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-08-21 21:17:48 +0000 |
---|---|---|
committer | neil <neil@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-08-21 21:17:48 +0000 |
commit | 438ac94c9b141e04a7b2512298120f5724b521ed (patch) | |
tree | 2dfd14ccaad28936c874d7de1b8e61b3d1be6abd /gcc/line-map.c | |
parent | eff7e27fce59a6c4ab34b7009db9b97da50c7c04 (diff) | |
download | gcc-438ac94c9b141e04a7b2512298120f5724b521ed.tar.gz |
* 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
Diffstat (limited to 'gcc/line-map.c')
-rw-r--r-- | gcc/line-map.c | 23 |
1 files changed, 22 insertions, 1 deletions
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); +} |