From: Martin Liska Date: Fri, 23 Aug 2019 11:42:19 +0000 (+0200) Subject: Backport r274504 X-Git-Tag: releases/gcc-9.3.0~692 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ecd06a4cc09069a2bf8a0f7701b28fcb839f8732;p=thirdparty%2Fgcc.git Backport r274504 2019-08-23 Martin Liska PR ipa/91508 Backport from mainline 2019-08-15 Martin Liska PR ipa/91438 * cgraph.c (cgraph_node::remove): When setting n->origin = NULL for all nested functions, reset also next_nested. From-SVN: r274853 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9d3214e02927..cfc39d66abc4 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,14 @@ +2019-08-23 Martin Liska + + PR ipa/91508 + Backport from mainline + 2019-08-15 Martin Liska + + PR ipa/91438 + * cgraph.c (cgraph_node::remove): When setting + n->origin = NULL for all nested functions, reset + also next_nested. + 2019-08-23 Martin Liska Backport from mainline diff --git a/gcc/cgraph.c b/gcc/cgraph.c index d9e7353bd7bf..1febb6369a08 100644 --- a/gcc/cgraph.c +++ b/gcc/cgraph.c @@ -1779,8 +1779,6 @@ cgraph_node::release_body (bool keep_arguments) void cgraph_node::remove (void) { - cgraph_node *n; - if (symtab->ipa_clones_dump_file && symtab->cloned_nodes.contains (this)) fprintf (symtab->ipa_clones_dump_file, "Callgraph removal;%s;%d;%s;%d;%d\n", asm_name (), order, @@ -1797,8 +1795,13 @@ cgraph_node::remove (void) */ force_output = false; forced_by_abi = false; - for (n = nested; n; n = n->next_nested) + cgraph_node *next = nested; + for (cgraph_node *n = nested; n; n = next) + { + next = n->next_nested; n->origin = NULL; + n->next_nested = NULL; + } nested = NULL; if (origin) { @@ -1852,7 +1855,7 @@ cgraph_node::remove (void) */ if (symtab->state != LTO_STREAMING) { - n = cgraph_node::get (decl); + cgraph_node *n = cgraph_node::get (decl); if (!n || (!n->clones && !n->clone_of && !n->global.inlined_to && ((symtab->global_info_ready || in_lto_p)