mirror of
https://github.com/gcc-mirror/gcc.git
synced 2026-05-06 14:59:39 +02:00
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.
This commit is contained in:
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user