diff options
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/tree-ssa-ccp.c | 6 |
2 files changed, 9 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b85d4600318..6bf3edcec4c 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2012-07-16 Ulrich Weigand <ulrich.weigand@linaro.org> + + * tree-ssa-ccp.c (optimize_unreachable): Check gsi_end_p + before calling gsi_stmt. + 2012-07-16 Kirill Yukhin <kirill.yukhin@intel.com> Revert diff --git a/gcc/tree-ssa-ccp.c b/gcc/tree-ssa-ccp.c index d2ce870a1f0..6dc30e148cd 100644 --- a/gcc/tree-ssa-ccp.c +++ b/gcc/tree-ssa-ccp.c @@ -2355,9 +2355,11 @@ optimize_unreachable (gimple_stmt_iterator i) FOR_EACH_EDGE (e, ei, bb->preds) { gsi = gsi_last_bb (e->src); - stmt = gsi_stmt (gsi); + if (gsi_end_p (gsi)) + continue; - if (stmt && gimple_code (stmt) == GIMPLE_COND) + stmt = gsi_stmt (gsi); + if (gimple_code (stmt) == GIMPLE_COND) { if (e->flags & EDGE_TRUE_VALUE) gimple_cond_make_false (stmt); |