> On Wed, Apr 20, 2022 at 01:47:43PM +0200, Martin Jambor wrote:
> > Hi,
> > 
> > On Wed, Apr 20 2022, Jan Hubicka via Gcc-patches wrote:
> > >> On Wed, 20 Apr 2022, Jakub Jelinek wrote:
> > 
> > [...]
> > 
> > >> >  
> > >> >    if ((flag_openacc || flag_openmp)
> > >> >        && lookup_attribute ("omp declare target", DECL_ATTRIBUTES 
> > >> > (decl)))
> > >> > --- gcc/cgraphclones.cc.jj     2022-01-18 11:58:58.948991114 +0100
> > >> > +++ gcc/cgraphclones.cc        2022-04-19 13:38:43.594262397 +0200
> > >> > @@ -394,6 +394,7 @@ cgraph_node::create_clone (tree new_decl
> > >> >    new_node->versionable = versionable;
> > >> >    new_node->can_change_signature = can_change_signature;
> > >> >    new_node->redefined_extern_inline = redefined_extern_inline;
> > >> > +  new_node->semantic_interposition = semantic_interposition;
> > >
> > > This indeed makes sense to me. 
> > 
> > but that means theat create_clone (and therefore also
> > create_virtual_clone) now creates nodes which are both local and
> > potentially interposable... is that what we want?  (Does the local flag
> > make the interposition flag meaningless in that case?)
> 
> Usually set_new_clone_decl_and_node_flags is called afterwards and that
> makes both the decl local and clears node->semantic_interposition.
> The above is just for the case when that isn't done.

We also simply ignore semantic_interposition flag on everything local.
But indeed perhaps for consistency purposes we should force it to false
whenever externally_visible is false.  But more sanity checkers only in
stage1 :)

Honza
> 
>       Jakub
> 

Reply via email to