On Mon, Feb 16, 2015 at 07:23:33PM +0100, Jan Hubicka wrote:
> > --- gcc/cgraphclones.c.jj   2015-01-09 21:59:44.000000000 +0100
> > +++ gcc/cgraphclones.c      2015-02-16 14:02:16.564725881 +0100
> > @@ -577,7 +577,7 @@ cgraph_node::create_virtual_clone (vec<c
> >    char *name;
> >  
> >    if (!in_lto_p)
> > -    gcc_checking_assert  (tree_versionable_function_p (old_decl));
> > +    gcc_checking_assert (tree_versionable_function_p (old_decl));
> >  
> >    gcc_assert (local.can_change_signature || !args_to_skip);
> >  
> > @@ -617,6 +617,8 @@ cgraph_node::create_virtual_clone (vec<c
> >       ABI support for this.  */
> >    set_new_clone_decl_and_node_flags (new_node);
> >    new_node->clone.tree_map = tree_map;
> > +  if (!DECL_ONE_ONLY (old_decl))
> 
> Instead of DECL_ONE_ONLY you want to test implicit_section flag.  I think
> resolving unique section with -ffunction-section is also needed.

DECL_ONE_ONLY was the test that 4.9 has been using here:

  /* Update the properties.
     Make clone visible only within this translation unit.  Make sure
     that is not weak also.
     ??? We cannot use COMDAT linkage because there is no
     ABI support for this.  */
  if (DECL_ONE_ONLY (old_decl))
    DECL_SECTION_NAME (new_node->decl) = NULL;

therefore I wanted to match the 4.9 behavior, before we try something
different incrementally.

> > +    new_node->set_section (this->get_section ());
> 
> No need for this->...

Sure, can change that.

        Jakub

Reply via email to