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.