From: Eric Botcazou Date: Fri, 6 Jan 2012 18:03:30 +0000 (+0000) Subject: backport: c-decl.c (ext_block): Moved up. X-Git-Tag: releases/gcc-4.6.3~197 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f115ffbe25257ed3d74d08413a24288b4b58e98b;p=thirdparty%2Fgcc.git backport: c-decl.c (ext_block): Moved up. Backport from mainline 2012-01-06 Arnaud Charlet * c-decl.c (ext_block): Moved up. (collect_all_refs, for_each_global_decl): Take ext_block into account. From-SVN: r182960 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 77ac9fe034fe..3437317c72fa 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2012-01-06 Eric Botcazou + + Backport from mainline + 2012-01-06 Arnaud Charlet + + * c-decl.c (ext_block): Moved up. + (collect_all_refs, for_each_global_decl): Take ext_block into account. + 2012-01-06 Richard Sandiford PR middle-end/48660 diff --git a/gcc/c-decl.c b/gcc/c-decl.c index 0335cda55982..b148f5e22f71 100644 --- a/gcc/c-decl.c +++ b/gcc/c-decl.c @@ -9782,6 +9782,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 @@ -9792,6 +9795,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. */ @@ -9810,10 +9815,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)