aboutsummaryrefslogtreecommitdiff
path: root/gcc/c-decl.c
diff options
context:
space:
mode:
authorArnaud Charlet <charlet@adacore.com>2012-01-06 14:11:33 +0000
committerArnaud Charlet <charlet@gcc.gnu.org>2012-01-06 15:11:33 +0100
commit86d71fcabfba7a1f288ea6b90e7228705d6f5b99 (patch)
tree4ff8e7acf1f2eb69d93439fae3fe079b3290b0d7 /gcc/c-decl.c
parent1ab3568bd5359801a13c0623262879baece7136c (diff)
downloadgcc-86d71fcabfba7a1f288ea6b90e7228705d6f5b99.zip
gcc-86d71fcabfba7a1f288ea6b90e7228705d6f5b99.tar.gz
gcc-86d71fcabfba7a1f288ea6b90e7228705d6f5b99.tar.bz2
c-decl.c (ext_block): Moved up.
* c-decl.c (ext_block): Moved up. (collect_all_refs, for_each_global_decl): Take ext_block into account. From-SVN: r182953
Diffstat (limited to 'gcc/c-decl.c')
-rw-r--r--gcc/c-decl.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/gcc/c-decl.c b/gcc/c-decl.c
index 96e9c7d1..45fb6b3 100644
--- a/gcc/c-decl.c
+++ b/gcc/c-decl.c
@@ -9932,6 +9932,9 @@ collect_source_ref_cb (tree decl)
collect_source_ref (LOCATION_FILE (decl_sloc (decl, false)));
}
+/* Preserve the external declarations scope across a garbage collect. */
+static GTY(()) tree ext_block;
+
/* Collect all references relevant to SOURCE_FILE. */
static void
@@ -9942,6 +9945,8 @@ collect_all_refs (const char *source_file)
FOR_EACH_VEC_ELT (tree, all_translation_units, i, t)
collect_ada_nodes (BLOCK_VARS (DECL_INITIAL (t)), source_file);
+
+ collect_ada_nodes (BLOCK_VARS (ext_block), source_file);
}
/* Iterate over all global declarations and call CALLBACK. */
@@ -9960,10 +9965,10 @@ for_each_global_decl (void (*callback) (tree decl))
for (decl = BLOCK_VARS (decls); decl; decl = TREE_CHAIN (decl))
callback (decl);
}
-}
-/* Preserve the external declarations scope across a garbage collect. */
-static GTY(()) tree ext_block;
+ for (decl = BLOCK_VARS (ext_block); decl; decl = TREE_CHAIN (decl))
+ callback (decl);
+}
void
c_write_global_declarations (void)