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 <jakub@redhat.com>
PR tree-optimization/118628
* tree-vect-stmts.cc (vectorizable_store, vectorizable_load):
Initialize offvar to NULL_TREE.
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;
{
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;