[Bug debug/90900] [8/9/10 Regression] ICE in copy_rtx, at rtl.c:376

jakub at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Tue Jun 18 08:22:00 GMT 2019


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

--- Comment #5 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
(In reply to rguenther@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.


More information about the Gcc-bugs mailing list