summaryrefslogtreecommitdiff
path: root/gcc/ipa-reference.c
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2006-12-20 10:09:50 +0100
committerJan Hubicka <hubicka@gcc.gnu.org>2006-12-20 09:09:50 +0000
commit68e56cc4a27bff0dab7f2fc3bcf8353583771f98 (patch)
tree21dd0c062d62565d1fbbf16f1fd779965b554ca6 /gcc/ipa-reference.c
parent7954dc21214b87ad8b3cf26994af00f968fcba78 (diff)
downloadgcc-68e56cc4a27bff0dab7f2fc3bcf8353583771f98.tar.gz
cgraph.h (FOR_EACH_STATIC_VARIABLE, [...]): New macros.
* cgraph.h (FOR_EACH_STATIC_VARIABLE, FOR_EACH_STATIC_INITIALIZER): New macros. (varpool_first_static_initializer, varpol_next_static_initializer): New inline functions. * ipa-reference.c (analyze_variable): Simplify. (static_execute): Use FOR_EACH_STATIC_INITIALIZER. * ipa-type-escape.c (type_escape_execute): Use FOR_EACH_STATIC_VARIABLE. From-SVN: r120070
Diffstat (limited to 'gcc/ipa-reference.c')
-rw-r--r--gcc/ipa-reference.c11
1 files changed, 3 insertions, 8 deletions
diff --git a/gcc/ipa-reference.c b/gcc/ipa-reference.c
index 521c84c6424..8602afda0b0 100644
--- a/gcc/ipa-reference.c
+++ b/gcc/ipa-reference.c
@@ -774,13 +774,8 @@ static void
analyze_variable (struct varpool_node *vnode)
{
tree global = vnode->decl;
- if (TREE_CODE (global) == VAR_DECL)
- {
- if (DECL_INITIAL (global))
- walk_tree (&DECL_INITIAL (global), scan_for_static_refs,
- NULL, visited_nodes);
- }
- else gcc_unreachable ();
+ walk_tree (&DECL_INITIAL (global), scan_for_static_refs,
+ NULL, visited_nodes);
}
/* This is the main routine for finding the reference patterns for
@@ -903,7 +898,7 @@ static_execute (void)
ipa_init ();
/* Process all of the variables first. */
- for (vnode = varpool_nodes_queue; vnode; vnode = vnode->next_needed)
+ FOR_EACH_STATIC_INITIALIZER (vnode)
analyze_variable (vnode);
/* Process all of the functions next.