summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/ipa-inline-analysis.c6
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.target/i386/mpx/pr66566.c12
4 files changed, 29 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 0e18f35fe66..aed24e73723 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2015-07-24 Ilya Enkovich <enkovich.gnu@gmail.com>
+
+ PR ipa/66566
+ * ipa-inline-analysis.c (estimate_calls_size_and_time): Check
+ edge summary is available.
+
2015-07-24 Richard Biener <rguenther@suse.de>
* genmatch.c (struct dt_node): Add statistic fields.
diff --git a/gcc/ipa-inline-analysis.c b/gcc/ipa-inline-analysis.c
index 286335eb474..3a8f0eced9d 100644
--- a/gcc/ipa-inline-analysis.c
+++ b/gcc/ipa-inline-analysis.c
@@ -3109,6 +3109,9 @@ estimate_calls_size_and_time (struct cgraph_node *node, int *size,
struct cgraph_edge *e;
for (e = node->callees; e; e = e->next_callee)
{
+ if (inline_edge_summary_vec.length () <= (unsigned) e->uid)
+ continue;
+
struct inline_edge_summary *es = inline_edge_summary (e);
/* Do not care about zero sized builtins. */
@@ -3140,6 +3143,9 @@ estimate_calls_size_and_time (struct cgraph_node *node, int *size,
}
for (e = node->indirect_calls; e; e = e->next_callee)
{
+ if (inline_edge_summary_vec.length () <= (unsigned) e->uid)
+ continue;
+
struct inline_edge_summary *es = inline_edge_summary (e);
if (!es->predicate
|| evaluate_predicate (es->predicate, possible_truths))
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 3e8c2d2d82f..244bf587ae7 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2015-07-24 Ilya Enkovich <enkovich.gnu@gmail.com>
+
+ PR ipa/66566
+ * gcc.target/i386/mpx/pr66566.c: New test.
+
2015-07-24 H.J. Lu <hongjiu.lu@intel.com>
PR bootstrap/66978
diff --git a/gcc/testsuite/gcc.target/i386/mpx/pr66566.c b/gcc/testsuite/gcc.target/i386/mpx/pr66566.c
new file mode 100644
index 00000000000..a405c20ac0e
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/mpx/pr66566.c
@@ -0,0 +1,12 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -fcheck-pointer-bounds -mmpx" } */
+
+union jsval_layout
+{
+ void *asPtr;
+};
+union jsval_layout a;
+union jsval_layout b;
+union jsval_layout __inline__ fn1() { return b; }
+
+void fn2() { a = fn1(); }