https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118616
--- Comment #19 from GCC Commits <cvs-commit at gcc dot gnu.org> --- The trunk branch has been updated by Andrew Pinski <pins...@gcc.gnu.org>: https://gcc.gnu.org/g:1c3d7800a1f27f8f30c9dc2995004814fd459363 commit r15-8874-g1c3d7800a1f27f8f30c9dc2995004814fd459363 Author: Andrew Pinski <quic_apin...@quicinc.com> Date: Sun Mar 23 10:38:39 2025 -0700 vect: Add assert to expand_vector_conversion [PR118616] 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 assert to avoid the warning and maybe even produce slightly better code for this function. A gcc_checking_assert would be better here but we don't convert that into an assume attribute or `if(!a) __builtin_unreachable();`, I filed PR 119439 for that. Bootstrapped and tested on x86_64-linux-gnu. 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>