This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

build fix for SH


This build problem was caught by Kaz Kojima and I think the patch is
obvious enough. :-) I've also adapted an if (expr) abort () to use
gcc_assert ().

Kaz has reported a successful sh-linux bootstrap.
Okay to commit?

2004-09-30  Ben Elliston  <bje@au.ibm.com>

	* lcm.c (optimize_mode_switching): Update to use EDGE_SUCC and
	FOR_EACH_EDGE macros.

Index: lcm.c
===================================================================
RCS file: /home/bje/gcc-cvs/gcc/gcc/lcm.c,v
retrieving revision 1.66
diff -u -p -r1.66 lcm.c
--- lcm.c       28 Sep 2004 07:59:47 -0000      1.66
+++ lcm.c       29 Sep 2004 23:35:28 -0000
@@ -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);


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]