aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorBen Elliston <bje@au.ibm.com>2004-09-30 23:40:15 +0000
committerBen Elliston <bje@gcc.gnu.org>2004-10-01 09:40:15 +1000
commitdc4f06d9728b0df11ea4f4d8b3a6cb07466e5545 (patch)
treef764cf31cd0c1686457efea2c52d1a7ca3fe7755 /gcc
parent9ec819d49ca815551b3fd8cd4e1202e898bac8d5 (diff)
downloadgcc-dc4f06d9728b0df11ea4f4d8b3a6cb07466e5545.zip
gcc-dc4f06d9728b0df11ea4f4d8b3a6cb07466e5545.tar.gz
gcc-dc4f06d9728b0df11ea4f4d8b3a6cb07466e5545.tar.bz2
re PR bootstrap/17761 (sh-elf doesn't build after merge from edge-vector-branch)
PR bootstrap/17761 * lcm.c (optimize_mode_switching): Update to use EDGE_SUCC and FOR_EACH_EDGE macros. From-SVN: r88368
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/lcm.c9
2 files changed, 11 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index bac245f..b91dbef 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2004-09-30 Ben Elliston <bje@au.ibm.com>
+
+ PR bootstrap/17761
+ * lcm.c (optimize_mode_switching): Update to use EDGE_SUCC and
+ FOR_EACH_EDGE macros.
+
2004-09-30 Joseph S. Myers <jsm@polyomino.org.uk>
* c-tree.h (readonly_error): Remove.
diff --git a/gcc/lcm.c b/gcc/lcm.c
index c3e5f93..b568b06 100644
--- a/gcc/lcm.c
+++ b/gcc/lcm.c
@@ -1025,17 +1025,18 @@ optimize_mode_switching (FILE *file)
exit block, so that we can note that there NORMAL_MODE is supplied /
required. */
edge eg;
- post_entry = split_edge (ENTRY_BLOCK_PTR->succ);
+ edge_iterator ei;
+ post_entry = split_edge (EDGE_SUCC (ENTRY_BLOCK_PTR, 0));
/* The only non-call predecessor at this stage is a block with a
fallthrough edge; there can be at most one, but there could be
none at all, e.g. when exit is called. */
- for (pre_exit = 0, eg = EXIT_BLOCK_PTR->pred; eg; eg = eg->pred_next)
+ pre_exit = 0;
+ FOR_EACH_EDGE (eg, ei, EXIT_BLOCK_PTR->preds)
if (eg->flags & EDGE_FALLTHRU)
{
regset live_at_end = eg->src->global_live_at_end;
- if (pre_exit)
- abort ();
+ gcc_assert (!pre_exit);
pre_exit = split_edge (eg);
COPY_REG_SET (pre_exit->global_live_at_start, live_at_end);
COPY_REG_SET (pre_exit->global_live_at_end, live_at_end);