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