From d92348e0e2538aa7858de1525bb479a20ee507d0 Mon Sep 17 00:00:00 2001 From: marxin Date: Mon, 4 Feb 2019 12:19:48 +0000 Subject: [PATCH] Bail out when ipa_fn_summaries does not contain entry for callee (PR ipa/88958). 2019-02-04 Martin Liska PR ipa/88958 * ipa-fnsummary.c (estimate_edge_devirt_benefit): Bail out when ipa_fn_summaries does not contain entry for callee. 2019-02-04 Martin Liska PR ipa/88958 * gcc.dg/ipa/pr88958.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268516 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 6 ++++++ gcc/ipa-fnsummary.c | 3 +++ gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/gcc.dg/ipa/pr88958.c | 13 +++++++++++++ 4 files changed, 27 insertions(+) create mode 100644 gcc/testsuite/gcc.dg/ipa/pr88958.c diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 1c9b1c779295..f55dfcd39fb4 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2019-02-04 Martin Liska + + PR ipa/88958 + * ipa-fnsummary.c (estimate_edge_devirt_benefit): Bail + out when ipa_fn_summaries does not contain entry for callee. + 2019-02-04 Eric Botcazou * config/sparc/sparc.h: Remove superfluous blank lines. diff --git a/gcc/ipa-fnsummary.c b/gcc/ipa-fnsummary.c index 535b3f22d495..057b364b3794 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/ChangeLog b/gcc/testsuite/ChangeLog index 8df6a0546d13..231cd55ca30b 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2019-02-04 Martin Liska + + PR ipa/88958 + * gcc.dg/ipa/pr88958.c: New test. + 2019-02-04 Jakub Jelinek * gcc.dg/debug/dwarf2/inline5.c: Handle also @, ; or | comment diff --git a/gcc/testsuite/gcc.dg/ipa/pr88958.c b/gcc/testsuite/gcc.dg/ipa/pr88958.c new file mode 100644 index 000000000000..8253a893cf6d --- /dev/null +++ b/gcc/testsuite/gcc.dg/ipa/pr88958.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.39.2