From 39292e25076e1048b2aaa89ac60c28f3f61a78a0 Mon Sep 17 00:00:00 2001 From: Eric Botcazou Date: Fri, 20 Dec 2019 17:41:06 +0000 Subject: [PATCH] c-ada-spec.h (decl_sloc): Delete. c-family/ * c-ada-spec.h (decl_sloc): Delete. * c-ada-spec.c (decl_sloc): Make static. c/ * c-decl.c (collect_source_ref_cb): Delete. (for_each_global_decl): Rename into... (collect_source_refs): ...this. Call collect_source_ref directly. (c_parse_final_cleanups): Always call collect_source_ref on the main input filename. cp/ * decl2.c (c_parse_final_cleanups): Always call collect_source_ref on the main input filename. From-SVN: r279670 --- gcc/c-family/ChangeLog | 5 +++++ gcc/c-family/c-ada-spec.c | 2 +- gcc/c-family/c-ada-spec.h | 1 - gcc/c/ChangeLog | 8 ++++++++ gcc/c/c-decl.c | 26 +++++++++----------------- gcc/cp/ChangeLog | 5 +++++ gcc/cp/decl2.c | 5 ++--- 7 files changed, 30 insertions(+), 22 deletions(-) diff --git a/gcc/c-family/ChangeLog b/gcc/c-family/ChangeLog index 30cbc133dc3..33ea8ab53d6 100644 --- a/gcc/c-family/ChangeLog +++ b/gcc/c-family/ChangeLog @@ -1,3 +1,8 @@ +2019-12-20 Eric Botcazou + + * c-ada-spec.h (decl_sloc): Delete. + * c-ada-spec.c (decl_sloc): Make static. + 2019-12-19 Julian Brown * c-common.h (c_omp_map_clause_name): Add prototype. diff --git a/gcc/c-family/c-ada-spec.c b/gcc/c-family/c-ada-spec.c index 5a142ce91be..024a3ac9171 100644 --- a/gcc/c-family/c-ada-spec.c +++ b/gcc/c-family/c-ada-spec.c @@ -630,7 +630,7 @@ static const char *current_source_file; /* Return sloc of DECL, using sloc of last field if LAST is true. */ -location_t +static location_t decl_sloc (const_tree decl, bool last) { tree field; diff --git a/gcc/c-family/c-ada-spec.h b/gcc/c-family/c-ada-spec.h index f9ea1bcc698..085e89120b2 100644 --- a/gcc/c-family/c-ada-spec.h +++ b/gcc/c-family/c-ada-spec.h @@ -36,7 +36,6 @@ enum cpp_operation { IS_TRIVIAL }; -extern location_t decl_sloc (const_tree, bool); extern void collect_ada_nodes (tree, const char *); extern void collect_source_ref (const char *); extern void dump_ada_specs (void (*)(const char *), diff --git a/gcc/c/ChangeLog b/gcc/c/ChangeLog index 469dc5d5d34..86b6c9fc6ab 100644 --- a/gcc/c/ChangeLog +++ b/gcc/c/ChangeLog @@ -1,3 +1,11 @@ +2019-12-20 Eric Botcazou + + * c-decl.c (collect_source_ref_cb): Delete. + (for_each_global_decl): Rename into... + (collect_source_refs): ...this. Call collect_source_ref directly. + (c_parse_final_cleanups): Always call collect_source_ref on the main + input filename. + 2019-12-19 Julian Brown Cesar Philippidis diff --git a/gcc/c/c-decl.c b/gcc/c/c-decl.c index 0450fcd3514..01f85e2feba 100644 --- a/gcc/c/c-decl.c +++ b/gcc/c/c-decl.c @@ -11787,15 +11787,6 @@ c_write_global_declarations_1 (tree globals) while (reconsider); } -/* Callback to collect a source_ref from a DECL. */ - -static void -collect_source_ref_cb (tree decl) -{ - if (!DECL_IS_BUILTIN (decl)) - collect_source_ref (LOCATION_FILE (decl_sloc (decl, false))); -} - /* Preserve the external declarations scope across a garbage collect. */ static GTY(()) tree ext_block; @@ -11813,10 +11804,10 @@ collect_all_refs (const char *source_file) collect_ada_nodes (BLOCK_VARS (ext_block), source_file); } -/* Iterate over all global declarations and call CALLBACK. */ +/* Collect source file references at global level. */ static void -for_each_global_decl (void (*callback) (tree decl)) +collect_source_refs (void) { tree t; tree decls; @@ -11827,11 +11818,13 @@ for_each_global_decl (void (*callback) (tree decl)) { decls = DECL_INITIAL (t); for (decl = BLOCK_VARS (decls); decl; decl = TREE_CHAIN (decl)) - callback (decl); + if (!DECL_IS_BUILTIN (decl)) + collect_source_ref (DECL_SOURCE_FILE (decl)); } for (decl = BLOCK_VARS (ext_block); decl; decl = TREE_CHAIN (decl)) - callback (decl); + if (!DECL_IS_BUILTIN (decl)) + collect_source_ref (DECL_SOURCE_FILE (decl)); } /* Perform any final parser cleanups and generate initial debugging @@ -11865,10 +11858,9 @@ c_parse_final_cleanups (void) if (flag_dump_ada_spec || flag_dump_ada_spec_slim) { /* Build a table of files to generate specs for */ - if (flag_dump_ada_spec_slim) - collect_source_ref (main_input_filename); - else - for_each_global_decl (collect_source_ref_cb); + collect_source_ref (main_input_filename); + if (!flag_dump_ada_spec_slim) + collect_source_refs (); dump_ada_specs (collect_all_refs, NULL); } diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 2b90d0ca7cf..37353e91b03 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +2019-12-20 Eric Botcazou + + * decl2.c (c_parse_final_cleanups): Always call collect_source_ref on + the main input filename. + 2019-12-19 Julian Brown Cesar Philippidis diff --git a/gcc/cp/decl2.c b/gcc/cp/decl2.c index 0352954b817..6ff81136c58 100644 --- a/gcc/cp/decl2.c +++ b/gcc/cp/decl2.c @@ -4816,9 +4816,8 @@ c_parse_final_cleanups (void) /* Handle -fdump-ada-spec[-slim] */ if (flag_dump_ada_spec || flag_dump_ada_spec_slim) { - if (flag_dump_ada_spec_slim) - collect_source_ref (main_input_filename); - else + collect_source_ref (main_input_filename); + if (!flag_dump_ada_spec_slim) collect_source_refs (global_namespace); dump_ada_specs (collect_all_refs, cpp_check); -- 2.30.2