diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 8afdf058d3b..aee4e04ce56 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,11 @@ 2013-02-27 Jakub Jelinek + PR middle-end/56461 + * df-scan.c (df_insn_delete): Use df_scan_free_mws_vec before + pool_free. + (df_insn_rescan_debug_internal): Use df_scan_free_mws_vec before + overwriting it. + PR middle-end/56461 * ipa-cp.c (decide_whether_version_node): Call vec_free on known_aggs[i].items and release known_aggs vector. diff --git a/gcc/df-scan.c b/gcc/df-scan.c index 2928776dfcf..931fa2c7e48 100644 --- a/gcc/df-scan.c +++ b/gcc/df-scan.c @@ -1153,6 +1153,7 @@ df_insn_delete (basic_block bb, unsigned int uid) df_ref_chain_delete (insn_info->defs); df_ref_chain_delete (insn_info->uses); df_ref_chain_delete (insn_info->eq_uses); + df_scan_free_mws_vec (insn_info->mw_hardregs); } pool_free (problem_data->insn_pool, insn_info); DF_INSN_UID_SET (uid, NULL); @@ -1332,6 +1333,7 @@ df_insn_rescan_debug_internal (rtx insn) df_ref_chain_delete (insn_info->defs); df_ref_chain_delete (insn_info->uses); df_ref_chain_delete (insn_info->eq_uses); + df_scan_free_mws_vec (insn_info->mw_hardregs); insn_info->defs = df_null_ref_rec; insn_info->uses = df_null_ref_rec;