<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -833,6 +833,7 @@ describe &quot;A Defn node&quot; do
             when :RuntimeError then
               d2.push_exception
               d2.set_local 0
+              d2.pop
               d2.push :self
               d2.push_local 0
               d2.send :puts, 1, true</diff>
      <filename>spec/compiler/defn_spec.rb</filename>
    </modified>
    <modified>
      <diff>@@ -85,10 +85,12 @@ describe &quot;An Ensure node&quot; do
         when :SyntaxError then
           g.push_exception
           g.set_local 0
+          g.pop
           g.push 2
         when :Exception then
           g.push_exception
           g.set_local 1
+          g.pop
           g.push 3
         when :else then
           g.pop         # TODO: should this be built in?</diff>
      <filename>spec/compiler/ensure_spec.rb</filename>
    </modified>
    <modified>
      <diff>@@ -101,6 +101,7 @@ describe &quot;A Rescue node&quot; do
         when :StandardError then
           g.push_exception
           g.set_ivar :@e
+          g.pop
           g.push :self
           g.send :c, 0, true
           g.pop
@@ -137,6 +138,7 @@ describe &quot;A Rescue node&quot; do
         when :StandardError then
           g.push_exception
           g.set_local 0
+          g.pop
           g.push :self
           g.send :c, 0, true
           g.pop
@@ -180,6 +182,7 @@ describe &quot;A Rescue node&quot; do
         when :StandardError then
           g.push_exception
           g.set_local 0
+          g.pop
           g.push :nil
         end
       end
@@ -194,6 +197,7 @@ describe &quot;A Rescue node&quot; do
         when :StandardError then
           g.push_exception
           g.set_local 0
+          g.pop
           g.push :nil
         end
       end
@@ -224,6 +228,7 @@ describe &quot;A Rescue node&quot; do
         when :RuntimeError then
           g.push_exception
           g.set_local 0
+          g.pop
           g.push :nil
         end
       end
@@ -579,6 +584,7 @@ describe &quot;A Rescue node&quot; do
         body.set!
         g.push_exception
         g.set_local 0
+        g.pop
         g.push 13
         g.clear_exception
         g.goto last</diff>
      <filename>spec/compiler/rescue_spec.rb</filename>
    </modified>
    <modified>
      <diff>@@ -6,6 +6,14 @@ class TestGenerator
     def initialize(gen)
       @generator = gen
       @ip = nil
+      @used = false
+    end
+
+    attr_reader :used
+    alias_method :used?, :used
+
+    def used!
+      @used = true
     end
 
     def inspect
@@ -53,8 +61,6 @@ class TestGenerator
 
   opcodes  = Rubinius::InstructionSet::OpCodes.map { |desc| desc.opcode }
   opcodes += [:add_literal,
-              :gif,
-              :git,
               :pop_modifiers,
               :push,
               :push_literal_at,
@@ -77,6 +83,16 @@ class TestGenerator
     CODE
   end
 
+  def git(lbl)
+    lbl.used!
+    add :goto_if_true, lbl
+  end
+
+  def gif(lbl)
+    lbl.used!
+    add :goto_if_false, lbl
+  end
+
   # The :g accessor is provided to make the code in the
   # utility methods below clearer
   attr_accessor :stream, :ip, :redo, :break, :next, :retry
@@ -174,8 +190,9 @@ class TestGenerator
     lit
   end
 
-  def goto x
+  def goto(x)
     raise &quot;Bad goto: #{x.inspect} on #{caller.first}&quot; unless Label === x
+    x.used!
     add :goto, x
   end
 </diff>
      <filename>spec/custom/helpers/generator.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>220c2490ba24491310560bce149f538067c0f8e4</id>
    </parent>
  </parents>
  <author>
    <name>Evan Phoenix</name>
    <email>ephoenix@engineyard.com</email>
  </author>
  <url>http://github.com/evanphx/rubinius/commit/251a9b51c2ad74d1d2349877a0a43bfdca2b6e91</url>
  <id>251a9b51c2ad74d1d2349877a0a43bfdca2b6e91</id>
  <committed-date>2009-07-08T12:09:41-07:00</committed-date>
  <authored-date>2009-07-08T12:02:09-07:00</authored-date>
  <message>Fix compiler specs for stack balance changes</message>
  <tree>e9094896f6519659b149fc2f556e78a6dde654c1</tree>
  <committer>
    <name>Evan Phoenix</name>
    <email>ephoenix@engineyard.com</email>
  </committer>
</commit>
