On Sun, Mar 23, 2025 at 9:46 PM Andrew Pinski <quic_apin...@quicinc.com> wrote: > > In some cases (after inliing due to LTO and -O3), GCC cannot > figure out that the length of the converts vect is not empty > when supportable_indirect_convert_operation returns true. So > we get an extra warning because we loop through all but the last > entry and GCC decided that `converts.length () - 1` is -1. This > adds an checking only assert to avoid the warning and maybe even > produce slightly better code for this function.
What about release checking then? > Bootstrapped and tested on x86_64-linux-gnu. OK. > PR tree-optimization/118616 > gcc/ChangeLog: > > * tree-vect-generic.cc (expand_vector_conversion): Add > an assert that converts vect is non empty if > supportable_indirect_convert_operation returns true. > > Signed-off-by: Andrew Pinski <quic_apin...@quicinc.com> > --- > gcc/tree-vect-generic.cc | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/gcc/tree-vect-generic.cc b/gcc/tree-vect-generic.cc > index 173ebd9a7ba..246297ec6a9 100644 > --- a/gcc/tree-vect-generic.cc > +++ b/gcc/tree-vect-generic.cc > @@ -1759,6 +1759,7 @@ expand_vector_conversion (gimple_stmt_iterator *gsi) > converts)) > { > new_rhs = arg; > + gcc_checking_assert (!converts.is_empty ()); > for (unsigned int i = 0; i < converts.length () - 1; i++) > { > new_lhs = make_ssa_name (converts[i].first); > -- > 2.43.0 >