Revision
1083
Author
lsansonetti@apple.com
Date
2009-03-22 22:12:41 -0700 (Sun, 22 Mar 2009)

Log Message

implemented begin..end while/until loops

Modified Paths

Diff

Modified: MacRuby/branches/experimental/roxor.cpp (1082 => 1083)


--- MacRuby/branches/experimental/roxor.cpp	2009-03-23 04:50:22 UTC (rev 1082)
+++ MacRuby/branches/experimental/roxor.cpp	2009-03-23 05:12:41 UTC (rev 1083)
@@ -3682,8 +3682,10 @@
 		BasicBlock *bodyBB = BasicBlock::Create("body", f);
 		BasicBlock *afterBB = BasicBlock::Create("after", f);
 
-		BranchInst::Create(loopBB, bb);
+		const bool first_pass_free = node->nd_state == 0;
 
+		BranchInst::Create(first_pass_free ? bodyBB : loopBB, bb);
+
 		bb = loopBB;
 		Value *condVal = compile_node(node->nd_cond);