aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2018-12-14 00:35:10 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>2018-12-14 00:35:10 +0100
commit0864675cc5f34e68e20fb5d7a9d38e92d7561dbc (patch)
tree33d6d30edbcf9d2475524525743aa2194c6457c2
parentb532a7859f749a302748214a75d565a8f7b90358 (diff)
downloadgcc-0864675cc5f34e68e20fb5d7a9d38e92d7561dbc.zip
gcc-0864675cc5f34e68e20fb5d7a9d38e92d7561dbc.tar.gz
gcc-0864675cc5f34e68e20fb5d7a9d38e92d7561dbc.tar.bz2
re PR tree-optimization/88444 (ICE: tree check: expected ssa_name, have integer_cst in live_on_edge, at tree-vrp.c:468; or ICE: tree check: expected ssa_name, have integer_cst in get_value_range, at vr-values.c:84)
PR tree-optimization/88444 * tree-inline.c (fold_marked_statements): Iterate up to last_basic_block_for_fn rather than n_basic_blocks_for_fn. * gcc.dg/tree-ssa/pr88444.c: New test. From-SVN: r267113
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/testsuite/ChangeLog3
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/pr88444.c6
-rw-r--r--gcc/tree-inline.c2
4 files changed, 14 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 3f1eeb7..7b4c219 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,9 @@
2018-12-13 Jakub Jelinek <jakub@redhat.com>
+ PR tree-optimization/88444
+ * tree-inline.c (fold_marked_statements): Iterate up to
+ last_basic_block_for_fn rather than n_basic_blocks_for_fn.
+
PR rtl-optimization/88470
* cfgcleanup.c (outgoing_edges_match): If the function is
shrink-wrapped and bb1 ends with a JUMP_INSN with a single fake
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index b0dae2b..3ce50c8 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,5 +1,8 @@
2018-12-13 Jakub Jelinek <jakub@redhat.com>
+ PR tree-optimization/88444
+ * gcc.dg/tree-ssa/pr88444.c: New test.
+
PR rtl-optimization/88470
* gcc.target/i386/pr88470.c: New test.
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr88444.c b/gcc/testsuite/gcc.dg/tree-ssa/pr88444.c
new file mode 100644
index 0000000..31ed316
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa/pr88444.c
@@ -0,0 +1,6 @@
+/* PR tree-optimization/88444 */
+/* { dg-do compile } */
+/* { dg-options "-O1 -finline-functions -finline-small-functions -fdump-tree-fixup_cfg3" } */
+/* { dg-final { scan-tree-dump-not " = \\(long int\\) 0;" "fixup_cfg3" } } */
+
+#include "../pr88444.c"
diff --git a/gcc/tree-inline.c b/gcc/tree-inline.c
index 52f0310..8c4c82e 100644
--- a/gcc/tree-inline.c
+++ b/gcc/tree-inline.c
@@ -4906,7 +4906,7 @@ gimple_expand_calls_inline (basic_block bb, copy_body_data *id)
static void
fold_marked_statements (int first, hash_set<gimple *> *statements)
{
- for (; first < n_basic_blocks_for_fn (cfun); first++)
+ for (; first < last_basic_block_for_fn (cfun); first++)
if (BASIC_BLOCK_FOR_FN (cfun, first))
{
gimple_stmt_iterator gsi;