aboutsummaryrefslogtreecommitdiff
path: root/gcc/ipa-inline-analysis.c
diff options
context:
space:
mode:
authorIlya Enkovich <enkovich.gnu@gmail.com>2015-07-24 13:15:49 +0000
committerIlya Enkovich <ienkovich@gcc.gnu.org>2015-07-24 13:15:49 +0000
commit349e312b4c93d5d3db61f887e401c02348b6bc2b (patch)
treea24f2a30d3bcdb2cf5110725a0f27b98c4c42e8d /gcc/ipa-inline-analysis.c
parent803835ded7f4ed4bbfcf0bbb427c7cf1f23203ac (diff)
downloadgcc-349e312b4c93d5d3db61f887e401c02348b6bc2b.zip
gcc-349e312b4c93d5d3db61f887e401c02348b6bc2b.tar.gz
gcc-349e312b4c93d5d3db61f887e401c02348b6bc2b.tar.bz2
re PR ipa/66566 ([CHKP] ICE in early_inliner: internal compiler error: in operator[], at vec.h:714)
gcc/ PR ipa/66566 * ipa-inline-analysis.c (estimate_calls_size_and_time): Check edge summary is available. gcc/testsuite/ PR ipa/66566 * gcc.target/i386/mpx/pr66566.c: New test. From-SVN: r226155
Diffstat (limited to 'gcc/ipa-inline-analysis.c')
-rw-r--r--gcc/ipa-inline-analysis.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/ipa-inline-analysis.c b/gcc/ipa-inline-analysis.c
index 286335e..3a8f0ec 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))