> From cbe1dd5d72d5181b128c47b29e3de1c5e28c8a3c Mon Sep 17 00:00:00 2001
> From: marxin <mli...@suse.cz>
> Date: Thu, 24 Jan 2019 16:07:29 +0100
> Subject: [PATCH] Bail out when ipa_fn_summaries does not contain entry for
>  callee (PR ipa/88958).
> 
> gcc/ChangeLog:
> 
> 2019-01-24  Martin Liska  <mli...@suse.cz>
> 
>       PR ipa/88958
>       * ipa-fnsummary.c (estimate_edge_devirt_benefit): Bail
>       out when ipa_fn_summaries does not contain entry for callee.
> 
> gcc/testsuite/ChangeLog:
> 
> 2019-01-24  Martin Liska  <mli...@suse.cz>
> 
>       PR ipa/88958
>       * gcc.dg/ipa/pr88985.c: New test.
OK, thanks!
Honza
> ---
>  gcc/ipa-fnsummary.c                |  3 +++
>  gcc/testsuite/gcc.dg/ipa/pr88985.c | 13 +++++++++++++
>  2 files changed, 16 insertions(+)
>  create mode 100644 gcc/testsuite/gcc.dg/ipa/pr88985.c
> 
> diff --git a/gcc/ipa-fnsummary.c b/gcc/ipa-fnsummary.c
> index 535b3f22d49..057b364b379 100644
> --- a/gcc/ipa-fnsummary.c
> +++ b/gcc/ipa-fnsummary.c
> @@ -2582,6 +2582,9 @@ estimate_edge_devirt_benefit (struct cgraph_edge *ie,
>    if (avail < AVAIL_AVAILABLE)
>      return false;
>    isummary = ipa_fn_summaries->get (callee);
> +  if (isummary == NULL)
> +    return false;
> +
>    return isummary->inlinable;
>  }
>  
> diff --git a/gcc/testsuite/gcc.dg/ipa/pr88985.c 
> b/gcc/testsuite/gcc.dg/ipa/pr88985.c
> new file mode 100644
> index 00000000000..8253a893cf6
> --- /dev/null
> +++ b/gcc/testsuite/gcc.dg/ipa/pr88985.c
> @@ -0,0 +1,13 @@
> +void f (void)
> +{
> +}
> +__attribute__((__optimize__("O2")))
> +void g (void f())
> +{
> +  f();
> +}
> +__attribute__((__optimize__("O2")))
> +void h (void)
> +{
> +  g(f);
> +}
> -- 
> 2.20.1
> 

Reply via email to