https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90900

--- Comment #6 from rguenther at suse dot de <rguenther at suse dot de> ---
On Tue, 18 Jun 2019, jakub at gcc dot gnu.org wrote:

> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90900
> 
> --- Comment #5 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
> (In reply to rguent...@suse.de from comment #4)
> > On Tue, 18 Jun 2019, jakub at gcc dot gnu.org wrote:
> > 
> > > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90900
> > > 
> > > --- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
> > > It is certainly invalid to goto *x; from outside of an OpenMP structured 
> > > block
> > > to inside it or vice versa, this testcase doesn't do that though.  And the
> > > NOTE_INSN_DELETED_LABEL is in the end in a different function from the 
> > > use.
> > 
> > So this also means we cannot really outline the function this way or
> > rather the outlining process would need to mark the label as
> > DECL_NONLOCAL?
> 
> We have to outline, there is no way around it.  And not really sure how would
> we know during the outlining whether the label is referenced from outside of
> the SESE region, we certainly don't walk the whole function IL at this point.
> DECL_NONLOCAL is a label that may be jumped to from the nested function, that
> is not the case, there can't be a jump to that label from another function,
> just useless reference.  So, if we can reference NOTE_INSN_DELETED_LABEL from
> another function, that is good enough.

OK, see the patch I posted.

Reply via email to