aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@adacore.com>2019-12-20 17:41:06 +0000
committerEric Botcazou <ebotcazou@gcc.gnu.org>2019-12-20 17:41:06 +0000
commit39292e25076e1048b2aaa89ac60c28f3f61a78a0 (patch)
tree14d790f6ae6c3e85fd4ba2d1f7763bd61a026494 /gcc
parent02e8542795c4321a76783b8f419435696bfed9f1 (diff)
downloadgcc-39292e25076e1048b2aaa89ac60c28f3f61a78a0.zip
gcc-39292e25076e1048b2aaa89ac60c28f3f61a78a0.tar.gz
gcc-39292e25076e1048b2aaa89ac60c28f3f61a78a0.tar.bz2
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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/c-family/ChangeLog5
-rw-r--r--gcc/c-family/c-ada-spec.c2
-rw-r--r--gcc/c-family/c-ada-spec.h1
-rw-r--r--gcc/c/ChangeLog8
-rw-r--r--gcc/c/c-decl.c26
-rw-r--r--gcc/cp/ChangeLog5
-rw-r--r--gcc/cp/decl2.c5
7 files changed, 30 insertions, 22 deletions
diff --git a/gcc/c-family/ChangeLog b/gcc/c-family/ChangeLog
index 30cbc13..33ea8ab 100644
--- a/gcc/c-family/ChangeLog
+++ b/gcc/c-family/ChangeLog
@@ -1,3 +1,8 @@
+2019-12-20 Eric Botcazou <ebotcazou@adacore.com>
+
+ * c-ada-spec.h (decl_sloc): Delete.
+ * c-ada-spec.c (decl_sloc): Make static.
+
2019-12-19 Julian Brown <julian@codesourcery.com>
* 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 5a142ce..024a3ac 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 f9ea1bc..085e891 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 469dc5d..86b6c9f 100644
--- a/gcc/c/ChangeLog
+++ b/gcc/c/ChangeLog
@@ -1,3 +1,11 @@
+2019-12-20 Eric Botcazou <ebotcazou@adacore.com>
+
+ * 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 <julian@codesourcery.com>
Cesar Philippidis <cesar@codesourcery.com>
diff --git a/gcc/c/c-decl.c b/gcc/c/c-decl.c
index 0450fcd..01f85e2 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 2b90d0c..37353e9 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,8 @@
+2019-12-20 Eric Botcazou <ebotcazou@adacore.com>
+
+ * decl2.c (c_parse_final_cleanups): Always call collect_source_ref on
+ the main input filename.
+
2019-12-19 Julian Brown <julian@codesourcery.com>
Cesar Philippidis <cesar@codesourcery.com>
diff --git a/gcc/cp/decl2.c b/gcc/cp/decl2.c
index 0352954..6ff8113 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);