fixed bug
authorbdemsky <bdemsky>
Tue, 3 Mar 2009 03:47:21 +0000 (03:47 +0000)
committerbdemsky <bdemsky>
Tue, 3 Mar 2009 03:47:21 +0000 (03:47 +0000)
Robust/src/IR/Flat/BuildFlat.java

index df775be2fd95354f0b24da6b8c025b2c7e1f0dea..069c178dc9bfc48ab9e456a9e423776addc79b0b 100644 (file)
@@ -886,6 +886,11 @@ public class BuildFlat {
   }
 
   private NodePair flattenLoopNode(LoopNode ln) {
+    HashSet oldbs=breakset;
+    HashSet oldcs=continueset;
+    breakset=new HashSet();
+    continueset=new HashSet();
+    
     if (ln.getType()==LoopNode.FORLOOP) {
       NodePair initializer=flattenBlockNode(ln.getInitializer());
       TempDescriptor cond_temp=TempDescriptor.tempFactory("condition", new TypeDescriptor(TypeDescriptor.BOOLEAN));
@@ -919,7 +924,8 @@ public class BuildFlat {
          breakit.remove();
          fn.addNext(nopend);
       }
-
+      breakset=oldbs;
+      continueset=oldcs;
       return new NodePair(begin,nopend);
     } else if (ln.getType()==LoopNode.WHILELOOP) {
       TempDescriptor cond_temp=TempDescriptor.tempFactory("condition", new TypeDescriptor(TypeDescriptor.BOOLEAN));
@@ -949,6 +955,8 @@ public class BuildFlat {
          breakit.remove();
          fn.addNext(nopend);
       }
+      breakset=oldbs;
+      continueset=oldcs;
       return new NodePair(begin,nopend);
     } else if (ln.getType()==LoopNode.DOWHILELOOP) {
       TempDescriptor cond_temp=TempDescriptor.tempFactory("condition", new TypeDescriptor(TypeDescriptor.BOOLEAN));
@@ -977,6 +985,8 @@ public class BuildFlat {
          breakit.remove();
          fn.addNext(nopend);
       }
+      breakset=oldbs;
+      continueset=oldcs;
       return new NodePair(begin,nopend);
     } else throw new Error();
   }