This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] More leak plugs for PR54146
On Fri, 17 Aug 2012, Jakub Jelinek wrote:
> On Fri, Aug 17, 2012 at 09:46:35AM +0200, Richard Guenther wrote:
> > --- gcc/tree-vect-slp.c (revision 190447)
> > +++ gcc/tree-vect-slp.c (working copy)
> > @@ -1858,8 +1862,11 @@ new_bb_vec_info (basic_block bb)
> > static void
> > destroy_bb_vec_info (bb_vec_info bb_vinfo)
> > {
> > + VEC (slp_instance, heap) *slp_instances;
> > + slp_instance instance;
> > basic_block bb;
> > gimple_stmt_iterator si;
> > + unsigned i;
> >
> > if (!bb_vinfo)
> > return;
> > @@ -1879,6 +1886,9 @@ destroy_bb_vec_info (bb_vec_info bb_vinf
> > free_data_refs (BB_VINFO_DATAREFS (bb_vinfo));
> > free_dependence_relations (BB_VINFO_DDRS (bb_vinfo));
> > VEC_free (gimple, heap, BB_VINFO_GROUPED_STORES (bb_vinfo));
> > + slp_instances = BB_VINFO_SLP_INSTANCES (bb_vinfo);
> > + FOR_EACH_VEC_ELT (slp_instance, slp_instances, i, instance)
> > + vect_free_slp_instance (instance);
> > VEC_free (slp_instance, heap, BB_VINFO_SLP_INSTANCES (bb_vinfo));
>
> In this case you should use slp_instances instead of
> BB_VINFO_SLP_INSTANCES (bb_vinfo) also in the above VEC_free call.
I followed the destroy_loop_vec_info pattern which probably uses
BB_VINFO_SLP_INSTANCES because it NULLs the vector in the place
we actually store it. Which is not really important of course,
as we free bb_vinfo immediately.
Richard.
> > destroy_cost_data (BB_VINFO_TARGET_COST_DATA (bb_vinfo));
> > free (bb_vinfo);
>
> Jakub
>
>
--
Richard Guenther <rguenther@suse.de>
SUSE / SUSE Labs
SUSE LINUX Products GmbH - Nuernberg - AG Nuernberg - HRB 16746
GF: Jeff Hawn, Jennifer Guild, Felix Imend