> >     * doc/md.texi (Standard Names): Document window_save.
> >     * cfgexpand.c (expand_debug_parm_decl): New function extracted from
> >     expand_debug_expr and expand_debug_source_expr.  If the target has
> >     a window_save instruction, adjust the ENTRY_VALUE_EXP.
> >     (expand_debug_expr) <SSA_NAME>: Call expand_debug_parm_decl if the
> >     SSA_NAME_VAR is a parameter.
> >     (expand_debug_source_expr) <PARM_DECL>: Call expand_debug_parm_decl.
> >     * var-tracking.c (parm_reg_t): New type and associated vector type.
> >     (windowed_parm_regs): New variable.
> >     (adjust_insn): If the target has a window_save instruction and this
> >     is the instruction, make its effect on parameter registers explicit.
> >     (next_non_note_insn_var_location): New function.
> >     (emit_notes_in_bb): Use it instead of NEXT_INSN throughout.
> >     (vt_add_function_parameter): If the target has a window_save insn,
> >     adjust the incoming RTL and record that in windowed_parm_regs.
> >     (vt_finalize): Free windowed_parm_regs.
>
> Ok.

Thanks.  As found out by Rainer, I made a stupid mistake in the last hunk.
Tested on i586-suse-linux, pre-approved by Jakub, applied on the mainline.


2011-07-22  Eric Botcazou  <ebotca...@adacore.com>

        PR debug/49815
        * var-tracking.c (vt_finalize): Always free windowed_parm_regs.


-- 
Eric Botcazou
Index: var-tracking.c
===================================================================
--- var-tracking.c	(revision 176622)
+++ var-tracking.c	(working copy)
@@ -9135,9 +9135,10 @@ vt_finalize (void)
       cselib_finish ();
       BITMAP_FREE (scratch_regs);
       scratch_regs = NULL;
-      VEC_free (parm_reg_t, gc, windowed_parm_regs);
     }
 
+  VEC_free (parm_reg_t, gc, windowed_parm_regs);
+
   if (vui_vec)
     XDELETEVEC (vui_vec);
   vui_vec = NULL;

Reply via email to