Hi,
my apologize for the breakage. I somehow missed Ada in --enable-languages
list. I've comitted the following fix that also cures enable checking failure
of g++.dg/torture/pr46154.C
Honza
* 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.
Index: cgraphunit.c
===================================================================
*** cgraphunit.c (revision 187650)
--- cgraphunit.c (working copy)
*************** varpool_finalize_decl (tree decl)
*** 819,825 ****
{
struct varpool_node *node = varpool_node (decl);
! gcc_assert (TREE_STATIC (decl));
if (node->finalized)
return;
--- 819,825 ----
{
struct varpool_node *node = varpool_node (decl);
! gcc_assert (TREE_STATIC (decl) || DECL_EXTERNAL (decl));
if (node->finalized)
return;
*************** mark_functions_to_output (void)
*** 1156,1161 ****
--- 1156,1162 ----
have analyzed node pointing to it. */
&& !node->symbol.in_other_partition
&& !node->alias
+ && !node->clones
&& !DECL_EXTERNAL (decl))
{
dump_cgraph_node (stderr, node);
Index: ipa.c
===================================================================
*** ipa.c (revision 187650)
--- ipa.c (working copy)
*************** function_and_variable_visibility (bool w
*** 915,921 ****
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);
--- 915,920 ----