On Mon 2025-03-17 21:31:13, Mikael Morin wrote:
> Le 28/02/2025 à 17:01, Filip Kastl a écrit :
> > diff --git a/gcc/gimple-ssa-sccopy.cc b/gcc/gimple-ssa-sccopy.cc
> > index 9f25fbaff36..7ffb5718ab6 100644
> > --- a/gcc/gimple-ssa-sccopy.cc
> > +++ b/gcc/gimple-ssa-sccopy.cc
> > @@ -568,6 +568,19 @@ scc_copy_prop::propagate ()
> >       {
> >         vec<gimple *> scc = worklist.pop ();
> > +      /* When we do 'replace_scc_by_value' it may happen that some EH edges
> > +    get removed.  That means parts of CFG get removed.  Those may
> > +    contain copy statements.  For that reason we prune SCCs here.  */
> > +      unsigned i;
> > +      for (i = 0; i < scc.length (); i++)
> > +   if (gimple_bb (scc[i]) == NULL)
> > +     scc.unordered_remove (i);
> Hello,
> this may not be important, but don't you need to skip the increment of i if
> the item is removed?
>      for (i = 0; i < scc.length ();)
>       if (gimple_bb (scc[i]) == NULL)
>         scc.unordered_remove (i);
>         else
>           i++;
> 
> Mikael

Hi Mikael,

Yes!  You're right and this is something I overlooked.  Thanks for the
correction.  I'll create a patch and mention you as Reported-By:

Filip

Reply via email to