The following fixes a memory leak in vectorizable_store which happens because the functions populating gvec_oprnds[i] will call .create () on the incoming vector, leaking what we've previously allocated.
Bootstrap and regtest running on x86_64-unknown-linux-gnu. * tree-vect-stmts.cc (vectorizable_store): Do not allocate storage for gvec_oprnds elements. --- gcc/tree-vect-stmts.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gcc/tree-vect-stmts.cc b/gcc/tree-vect-stmts.cc index cabd4e3ae86..69d76c3b350 100644 --- a/gcc/tree-vect-stmts.cc +++ b/gcc/tree-vect-stmts.cc @@ -8772,7 +8772,7 @@ vectorizable_store (vec_info *vinfo, tree vec_mask = NULL; auto_delete_vec<auto_vec<tree>> gvec_oprnds (group_size); for (i = 0; i < group_size; i++) - gvec_oprnds.quick_push (new auto_vec<tree> (ncopies)); + gvec_oprnds.quick_push (new auto_vec<tree> ()); if (memory_access_type == VMAT_LOAD_STORE_LANES) { -- 2.35.3