From 0887961f9e0e7ea6b417bfb02787cfdaea41dbe4 Mon Sep 17 00:00:00 2001 From: Richard Biener Date: Fri, 5 Sep 2025 14:47:33 +0200 Subject: [PATCH] tree-optimization/121703 - UBSAN error with moving from uninit data The PR reports vectorizer.h:276:3: runtime error: load of value 32695, which is not a valid value for type 'internal_fn' which I believe is from slp_node->data = new vect_load_store_data (std::move (ls)); where 'ls' can be partly uninitialized (and that data will be not used, but of course the move CTOR doesn't know this). The following tries to fix that by using value-initialization of 'ls'. PR tree-optimization/121703 * tree-vect-stmts.cc (vectorizable_store): Value-initialize ls. (vectorizable_load): Likewise. --- 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 9fcc2fd0849..7eabf169a2b 100644 --- a/gcc/tree-vect-stmts.cc +++ b/gcc/tree-vect-stmts.cc @@ -7881,7 +7881,7 @@ vectorizable_store (vec_info *vinfo, if (!STMT_VINFO_DATA_REF (stmt_info)) return false; - vect_load_store_data _ls_data; + vect_load_store_data _ls_data{}; vect_load_store_data &ls = slp_node->get_data (_ls_data); if (cost_vec && !get_load_store_type (vinfo, stmt_info, vectype, slp_node, mask_node, @@ -9451,7 +9451,7 @@ vectorizable_load (vec_info *vinfo, else group_size = 1; - vect_load_store_data _ls_data; + vect_load_store_data _ls_data{}; vect_load_store_data &ls = slp_node->get_data (_ls_data); if (cost_vec && !get_load_store_type (vinfo, stmt_info, vectype, slp_node, mask_node,