Hi. We have to clean up dangling pointers before we call ggc_free for a cgraph_edge.
Patch can bootstrap on x86_64-linux-gnu and survives regression tests. And it survives --enable-checking=release bootstrap on x86_64-linux-gnu. Ready to be installed? Thanks, Martin gcc/ChangeLog: 2019-07-30 Martin Liska <mli...@suse.cz> PR ipa/89330 * cgraph.c (symbol_table::free_edge): Memset 0 to cgraph_edge before we call ggc_free. --- gcc/cgraph.c | 2 ++ 1 file changed, 2 insertions(+)
diff --git a/gcc/cgraph.c b/gcc/cgraph.c index 81250acb70c..372974f12df 100644 --- a/gcc/cgraph.c +++ b/gcc/cgraph.c @@ -1008,6 +1008,8 @@ symbol_table::free_edge (cgraph_edge *e) if (e->m_summary_id != -1) edge_released_summary_ids.safe_push (e->m_summary_id); + /* Clear out the edge so we do not dangle pointers. */ + memset (e, 0, sizeof (*e)); if (e->indirect_info) ggc_free (e->indirect_info); ggc_free (e);