https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97346

--- Comment #8 from Richard Biener <rguenth at gcc dot gnu.org> ---
(In reply to Jan Hubicka from comment #7)
> I tested yesterday this one (which makes the lifetime bit more explicit
> - during propagation it is for dumps only). Sorry for not posting it
> earlier. I just wanted to double check tha tleak is gone.
> 
> diff --git a/gcc/ipa-reference.c b/gcc/ipa-reference.c
> index 2ea2a6d5327..84c018ff57c 100644
> --- a/gcc/ipa-reference.c
> +++ b/gcc/ipa-reference.c
> @@ -458,8 +458,8 @@ ipa_init (void)
>  
>    ipa_init_p = true;
>  
> -  vec_alloc (reference_vars_to_consider, 10);
> -
> +  if (dump_file)
> +    vec_alloc (reference_vars_to_consider, 10);
>  
>    if (ipa_ref_opt_sum_summaries != NULL)
>      {
> @@ -967,8 +967,12 @@ propagate (void)
>      }
>  
>    if (dump_file)
> -    vec_free (reference_vars_to_consider);
> -  reference_vars_to_consider = NULL;
> +    {
> +      vec_free (reference_vars_to_consider);
> +      reference_vars_to_consider = NULL;
> +    }
> +  else
> +    gcc_checking_assert (!reference_vars_to_consider);
>    return remove_p ? TODO_remove_functions : 0;
>  }
>  
> @@ -1059,6 +1063,7 @@ ipa_reference_write_optimization_summary (void)
>    auto_bitmap ltrans_statics;
>    int i;
>  
> +  gcc_checking_assert (!reference_vars_to_consider);
>    vec_alloc (reference_vars_to_consider, ipa_reference_vars_uids);
>    reference_vars_to_consider->safe_grow (ipa_reference_vars_uids, true);
>  
> @@ -1117,7 +1122,7 @@ ipa_reference_write_optimization_summary (void)
>         }
>        }
>    lto_destroy_simple_output_block (ob);
> -  delete reference_vars_to_consider;
> +  vec_free (reference_vars_to_consider);

maybe set reference_vars_to_consider to NULL here for consistency,
otherwise also looks good to me!

>  }
>  
>  /* Deserialize the ipa info for lto.  */

Reply via email to