From: Jan Hubicka Date: Wed, 31 Mar 2021 18:10:31 +0000 (+0200) Subject: Fix overvactive check in cgraph_node::release_body X-Git-Tag: basepoints/gcc-12~324 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=23ce9945d5efa77c96161443f68e03664705ada3;p=thirdparty%2Fgcc.git Fix overvactive check in cgraph_node::release_body gcc/ChangeLog: PR lto/99447 * cgraph.c (cgraph_node::release_body): Fix overactive check. --- diff --git a/gcc/cgraph.c b/gcc/cgraph.c index b77c676a58a9..d7c78d518bc4 100644 --- a/gcc/cgraph.c +++ b/gcc/cgraph.c @@ -1860,7 +1860,15 @@ cgraph_node::release_body (bool keep_arguments) lto_free_function_in_decl_state_for_node (this); lto_file_data = NULL; } - gcc_assert (!clones); + if (flag_checking && clones) + { + /* It is invalid to release body before materializing clones except + for thunks that don't really need a body. Verify also that we do + not leak pointers to the call statements. */ + for (cgraph_node *node = clones; node; + node = node->next_sibling_clone) + gcc_assert (node->thunk && !node->callees->call_stmt); + } remove_callees (); remove_all_references (); }