@@ -221,8 +221,8 @@ bool blockinit(ref BlockOpt bo)
221221 L1 :
222222 foreach (blp; b.Bpred[])
223223 {
224- foreach (bls; ListRange (blp.Bsucc))
225- if (list_block( bls) == b)
224+ foreach (bls; BsuccArray (blp.Bsucc))
225+ if (bls == b)
226226 continue L1 ;
227227 assert (0 );
228228 }
@@ -328,6 +328,7 @@ bool dom(ref BlockOpt bo, const block* A, const block* B)
328328 * Find all the loops.
329329 */
330330
331+ @trusted
331332private void findloops (ref BlockOpt bo, block* [] dfo, ref Loops loops)
332333{
333334 freeloop(loops);
@@ -340,9 +341,8 @@ private void findloops(ref BlockOpt bo, block*[] dfo, ref Loops loops)
340341 // loops are found first)
341342 {
342343 assert (b);
343- foreach (bl; ListRange (b.Bsucc))
344+ foreach (s; BsuccArray (b.Bsucc))
344345 {
345- block* s = list_block(bl); // each successor s to b
346346 assert (s);
347347 if (dom(bo, s, b)) // if s dominates b
348348 buildloop(bo, loops, s, b); // we found a loop
455455 vec_setbit(i,l.Lexit); /* ret blocks are exit blocks */
456456 else
457457 {
458- foreach (bl; ListRange (bo.dfo[i].Bsucc))
459- if (! vec_testbit(list_block(bl) .Bdfoidx,l.Lloop))
458+ foreach (b; BsuccArray (bo.dfo[i].Bsucc))
459+ if (! vec_testbit(b .Bdfoidx,l.Lloop))
460460 {
461461 vec_setbit(i,l.Lexit);
462462 break ;
@@ -607,10 +607,10 @@ static if (1)
607607 head.Bpred.subtracti(i);
608608
609609 // Any successors to predecessors to head blocks get redirected to head2
610- foreach (bl; ListRange (bs.Bsucc))
611- if (list_block(bl) == head)
610+ foreach (ref bl; BsuccArray (bs.Bsucc))
611+ if (bl == head)
612612 {
613- bl.ptr = cast ( void * ) head2;
613+ bl = head2;
614614 goto L2 ;
615615 }
616616 assert (0 );
@@ -634,10 +634,10 @@ else
634634 (* pbl2).next = null ;
635635 auto bsucc = list_block(* pbl2).Bsucc;
636636 pbl2 = &((* pbl2).next);
637- foreach (bl; ListRange (bsucc))
638- if (list_block(bl) == head)
637+ foreach (ref bl; BsuccArray (bsucc))
638+ if (bl == head)
639639 {
640- bl.ptr = cast ( void * ) head2;
640+ bl = head2;
641641 goto L2 ;
642642 }
643643 assert (0 );
0 commit comments