diff options
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/cgraphunit.c | 3 | ||||
-rw-r--r-- | gcc/ipa.c | 1 |
3 files changed, 9 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 3caf3661a6b..57d6fed0918 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2012-05-18 Jan Hubicka <jh@suse.cz> + + * cgraphunit.c (varpool_finalize_decl): Allow external decls. + (mark_functions_to_output): Fix sanity check. + * ipa.c (function_and_variable_visibility): Remove TREE_STATIC + check. + 2012-05-18 Richard Guenther <rguenther@suse.de> * tree-flow.h (mark_symbols_for_renaming): Remove. diff --git a/gcc/cgraphunit.c b/gcc/cgraphunit.c index 97e810e5f2a..7dae2c8e820 100644 --- a/gcc/cgraphunit.c +++ b/gcc/cgraphunit.c @@ -819,7 +819,7 @@ varpool_finalize_decl (tree decl) { struct varpool_node *node = varpool_node (decl); - gcc_assert (TREE_STATIC (decl)); + gcc_assert (TREE_STATIC (decl) || DECL_EXTERNAL (decl)); if (node->finalized) return; @@ -1156,6 +1156,7 @@ mark_functions_to_output (void) have analyzed node pointing to it. */ && !node->symbol.in_other_partition && !node->alias + && !node->clones && !DECL_EXTERNAL (decl)) { dump_cgraph_node (stderr, node); diff --git a/gcc/ipa.c b/gcc/ipa.c index cafa7a11f2a..43c2f60fa2a 100644 --- a/gcc/ipa.c +++ b/gcc/ipa.c @@ -915,7 +915,6 @@ function_and_variable_visibility (bool whole_program) symtab_dissolve_same_comdat_group_list ((symtab_node) vnode); vnode->symbol.resolution = LDPR_PREVAILING_DEF_IRONLY; } - gcc_assert (TREE_STATIC (vnode->symbol.decl)); } pointer_set_destroy (aliased_nodes); pointer_set_destroy (aliased_vnodes); |