> We use lto_file_data in 1to1 partitioning, so we need to not zero it
> out. Nothing depends on lto_file_data being NULL.
> 
> gcc/ChangeLog:
> 
>       * cgraph.cc (cgraph_node::release_body): Keep lto_file_data.
>       (cgraph_node::remove): likewise.
>       * lto-section-in.cc (lto_free_function_in_decl_state_for_node):
>       likewise.
>       * varpool.cc (varpool_node::remove): likewise.
> 
> gcc/lto/ChangeLog:
> 
>       * lto-symtab.cc (lto_symtab_merge_symbols_1): likewise.
> ---
>  gcc/cgraph.cc         | 11 ++---------
>  gcc/lto-section-in.cc |  1 -
>  gcc/lto/lto-symtab.cc |  6 +-----
>  gcc/varpool.cc        |  6 +-----
>  4 files changed, 4 insertions(+), 20 deletions(-)
> 
> diff --git a/gcc/cgraph.cc b/gcc/cgraph.cc
> index 32071a84bac..a83e3825dc3 100644
> --- a/gcc/cgraph.cc
> +++ b/gcc/cgraph.cc
> @@ -2015,11 +2015,7 @@ cgraph_node::release_body (bool keep_arguments)
>    if (!used_as_abstract_origin && DECL_INITIAL (decl))
>      DECL_INITIAL (decl) = error_mark_node;
>    release_function_body (decl);
> -  if (lto_file_data)
> -    {
> -      lto_free_function_in_decl_state_for_node (this);
> -      lto_file_data = NULL;
> -    }
> +  lto_free_function_in_decl_state_for_node (this);

I believe I made this (before 1to1) just to avoid dangling pointers to
useless data, since it is handled by garbage collector.  This is a good
reason to keep it around.

OK,
Honza

Reply via email to