cppfiles.c (stack_include_file): Don't handle -H here.
* 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. From-SVN: r45084
This commit is contained in:
parent
e5eba70ac7
commit
5993019d20
@ -1,3 +1,12 @@
|
||||
2001-08-21 Neil Booth <neil@daikokuya.demon.co.uk>
|
||||
|
||||
* 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.
|
||||
|
||||
2001-08-21 Neil Booth <neil@daikokuya.demon.co.uk>
|
||||
|
||||
* cppfiles.c (stack_include_file): Harmonize system headerness tests.
|
||||
|
@ -313,18 +313,8 @@ stack_include_file (pfile, inc)
|
||||
}
|
||||
|
||||
if (pfile->buffer)
|
||||
{
|
||||
/* We don't want MI guard advice for the main file. */
|
||||
inc->include_count++;
|
||||
|
||||
/* Handle -H option. */
|
||||
if (CPP_OPTION (pfile, print_include_names))
|
||||
{
|
||||
for (fp = pfile->buffer; fp; fp = fp->prev)
|
||||
putc ('.', stderr);
|
||||
fprintf (stderr, " %s\n", inc->name);
|
||||
}
|
||||
}
|
||||
/* We don't want MI guard advice for the main file. */
|
||||
inc->include_count++;
|
||||
|
||||
/* Push a buffer. */
|
||||
fp = cpp_push_buffer (pfile, inc->buffer, inc->st.st_size, BUF_FILE, 0);
|
||||
|
@ -939,6 +939,11 @@ cpp_start_read (pfile, fname)
|
||||
if (!_cpp_read_file (pfile, fname))
|
||||
return 0;
|
||||
|
||||
/* Set this after cpp_post_options so the client can change the
|
||||
option if it wishes, and after stacking the main file so we don't
|
||||
trace the main file. */
|
||||
pfile->line_maps.trace_includes = CPP_OPTION (pfile, print_include_names);
|
||||
|
||||
/* Install builtins and process command line macros etc. in the order
|
||||
they appeared, but only if not already preprocessed. */
|
||||
if (! CPP_OPTION (pfile, preprocessed))
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -59,6 +59,9 @@ struct line_maps
|
||||
LAST_LISTED as the topmost including file. -1 indicates nothing
|
||||
has been listed yet. */
|
||||
int last_listed;
|
||||
|
||||
/* If true, prints an include trace a la -H. */
|
||||
bool trace_includes;
|
||||
};
|
||||
|
||||
/* Initialize a line map set. */
|
||||
|
Loading…
Reference in New Issue
Block a user