PING^1
On 12/1/22 10:59, Martin Liška wrote:
> Hi.
>
> Noticed during building of libbackend.a with the LTO partial linking.
>
> The function release_body is called even if clone_of is a clone
> of a another function and thus it shares tree declaration. We should
> preserve it in that situation.
>
> Patch can bootstrap on x86_64-linux-gnu and survives regression tests.
>
> Ready to be installed?
> Thanks,
> Martin
>
> PR ipa/107944
>
> gcc/ChangeLog:
>
> * cgraph.cc (cgraph_node::remove): Do not release body
> if a node is clone of another node.
> ---
> gcc/cgraph.cc | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/gcc/cgraph.cc b/gcc/cgraph.cc
> index f15cb47c8b8..2e7d77ffd6c 100644
> --- a/gcc/cgraph.cc
> +++ b/gcc/cgraph.cc
> @@ -1893,7 +1893,7 @@ cgraph_node::remove (void)
> else if (clone_of)
> {
> clone_of->clones = next_sibling_clone;
> - if (!clone_of->analyzed && !clone_of->clones && !clones)
> + if (!clone_of->analyzed && !clone_of->clones && !clones &&
> !clone_of->clone_of)
> clone_of->release_body ();
> }
> if (next_sibling_clone)