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 ----

Reply via email to