From: Richard Biener Date: Fri, 5 Sep 2025 12:47:33 +0000 (+0200) Subject: tree-optimization/121703 - UBSAN error with moving from uninit data X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=0887961f9e0e7ea6b417bfb02787cfdaea41dbe4;p=thirdparty%2Fgcc.git 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. --- 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,