aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/ipa-fnsummary.c3
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.dg/ipa/pr88958.c13
4 files changed, 27 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 1c9b1c77..f55dfcd 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2019-02-04 Martin Liska <mliska@suse.cz>
+
+ 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 <ebotcazou@adacore.com>
* config/sparc/sparc.h: Remove superfluous blank lines.
diff --git a/gcc/ipa-fnsummary.c b/gcc/ipa-fnsummary.c
index 535b3f2..057b364 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 8df6a05..231cd55 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2019-02-04 Martin Liska <mliska@suse.cz>
+
+ PR ipa/88958
+ * gcc.dg/ipa/pr88958.c: New test.
+
2019-02-04 Jakub Jelinek <jakub@redhat.com>
* 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 0000000..8253a89
--- /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);
+}