re PR ipa/66566 ([CHKP] ICE in early_inliner: internal compiler error: in operator...
authorIlya Enkovich <enkovich.gnu@gmail.com>
Fri, 24 Jul 2015 13:15:49 +0000 (13:15 +0000)
committerIlya Enkovich <ienkovich@gcc.gnu.org>
Fri, 24 Jul 2015 13:15:49 +0000 (13:15 +0000)
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

gcc/ChangeLog
gcc/ipa-inline-analysis.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/i386/mpx/pr66566.c [new file with mode: 0644]

index 0e18f35fe6600632ad1d2e4b878c3ceebadbd4e2..aed24e73723ada4ed25b6084268cf3a9a1a4ac6a 100644 (file)
@@ -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.
index 286335eb4742dd4c1a0356e5ea9db5f4b9e3062f..3a8f0eced9d11f84c6e9340bc9ab203ebe20c43a 100644 (file)
@@ -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))
index 3e8c2d2d82f8254b7901521d60a118f9f9e00755..244bf587ae786c53e8bf6fbf277097a7bd5e2d4b 100644 (file)
@@ -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 (file)
index 0000000..a405c20
--- /dev/null
@@ -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(); }