PR ipa/97244
* ipa-fnsummary.c (pass_free_fnsummary::execute): Free
also indirect inlining datastructure.
* ipa-modref.c (pass_ipa_modref::execute): Do not free them here.
* ipa-prop.c (ipa_free_all_node_params): Do not crash when info does
not exist.
(ipa_unregister_cgraph_hooks): Likewise.
virtual unsigned int execute (function *)
{
ipa_free_fn_summary ();
+ /* Free ipa-prop structures if they are no longer needed. */
+ ipa_free_all_structures_after_iinln ();
if (!flag_wpa)
ipa_free_size_summary ();
return 0;
}
((modref_summaries *)summaries)->ipa = false;
ipa_free_postorder_info ();
- /* Free ipa-prop structures if they are no longer needed. */
- ipa_free_all_structures_after_iinln ();
return 0;
}
void
ipa_free_all_node_params (void)
{
- ggc_delete (ipa_node_params_sum);
+ if (ipa_node_params_sum)
+ ggc_delete (ipa_node_params_sum);
ipa_node_params_sum = NULL;
}
static void
ipa_unregister_cgraph_hooks (void)
{
- symtab->remove_cgraph_insertion_hook (function_insertion_hook_holder);
+ if (function_insertion_hook_holder)
+ symtab->remove_cgraph_insertion_hook (function_insertion_hook_holder);
function_insertion_hook_holder = NULL;
}