https://gcc.gnu.org/g:8f6dd185d16dec8ca9351a754f0ece153f89d85c
commit r15-7166-g8f6dd185d16dec8ca9351a754f0ece153f89d85c Author: Jakub Jelinek <ja...@redhat.com> Date: Thu Jan 23 20:03:36 2025 +0100 vect: Avoid copying of uninitialized variable [PR118628] vectorizable_{store,load} does roughly tree offvar; tree running_off; if (!costing_p) { ... initialize offvar ... } running_off = offvar; for (...) { if (costing_p) { ... continue; } ... use running_off ... } so, it copies unconditionally sometimes uninitialized variable (but then uses the copied variable only if it was set to something initialized). Still, I think it is better to avoid copying around maybe uninitialized vars. 2025-01-23 Jakub Jelinek <ja...@redhat.com> PR tree-optimization/118628 * tree-vect-stmts.cc (vectorizable_store, vectorizable_load): Initialize offvar to NULL_TREE. Diff: --- gcc/tree-vect-stmts.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gcc/tree-vect-stmts.cc b/gcc/tree-vect-stmts.cc index c0550acf6b2b..1b639ae3b174 100644 --- a/gcc/tree-vect-stmts.cc +++ b/gcc/tree-vect-stmts.cc @@ -8645,7 +8645,7 @@ vectorizable_store (vec_info *vinfo, gimple_stmt_iterator incr_gsi; bool insert_after; gimple *incr; - tree offvar; + tree offvar = NULL_TREE; tree ivstep; tree running_off; tree stride_base, stride_step, alias_off; @@ -10603,7 +10603,7 @@ vectorizable_load (vec_info *vinfo, { gimple_stmt_iterator incr_gsi; bool insert_after; - tree offvar; + tree offvar = NULL_TREE; tree ivstep; tree running_off; vec<constructor_elt, va_gc> *v = NULL;