aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/profile.c7
2 files changed, 9 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 7412c20..48c60c0 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,10 @@
2010-12-06 Jakub Jelinek <jakub@redhat.com>
+ PR tree-optimization/46528
+ PR debug/46338
+ * profile.c (branch_prob): Make sure last is never set to a debug
+ stmt.
+
PR debug/46771
* reginfo.c (init_subregs_of_mode): Don't call find_subregs_of_mode
on DEBUG_INSNs.
diff --git a/gcc/profile.c b/gcc/profile.c
index 9e8c203..606e3b2 100644
--- a/gcc/profile.c
+++ b/gcc/profile.c
@@ -936,11 +936,12 @@ branch_prob (void)
/* It may happen that there are compiler generated statements
without a locus at all. Go through the basic block from the
last to the first statement looking for a locus. */
- for (gsi = gsi_last_bb (bb); !gsi_end_p (gsi); gsi_prev (&gsi))
+ for (gsi = gsi_last_nondebug_bb (bb);
+ !gsi_end_p (gsi);
+ gsi_prev_nondebug (&gsi))
{
last = gsi_stmt (gsi);
- if (!is_gimple_debug (last)
- && gimple_has_location (last))
+ if (gimple_has_location (last))
break;
}