On Fri, 5 Sep 2025, Richard Biener wrote:

> 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'.
> 
> Bootstrap and regtest running on x86_64-unknown-linux-gnu.

I have now pushed this.

> Using ls() failed (somehow that got a function type?), I hope {}
> is C++14.  I also hope {} will value-initialize a union member in
> the same way a defaulted move CTOR will access it.
> 
>       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,
> 

-- 
Richard Biener <rguent...@suse.de>
SUSE Software Solutions Germany GmbH,
Frankenstrasse 146, 90461 Nuernberg, Germany;
GF: Ivo Totev, Andrew McDonald, Werner Knoblich; (HRB 36809, AG Nuernberg)

Reply via email to