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);