Author: fperrad
Date: Fri Aug  8 01:11:41 2008
New Revision: 30126

Modified:
   trunk/languages/lua/src/yapp/Lua/build.pm

Log:
[Lua] Perl/yapp compiler
 - fix fornum (see r30004-30005)

Modified: trunk/languages/lua/src/yapp/Lua/build.pm
==============================================================================
--- trunk/languages/lua/src/yapp/Lua/build.pm   (original)
+++ trunk/languages/lua/src/yapp/Lua/build.pm   Fri Aug  8 01:11:41 2008
@@ -896,8 +896,10 @@
     push @opcodes, @{ $e_start->[1] };
     push @opcodes, @{ $e_limit->[1] };
     push @opcodes, @{ $e_step->[1] };
-    my $_var = $var->[0];
+    my $_loc_v = $var->[0];
     push @opcodes, @{ $var->[1] };
+    my $_var = new_tmp( $parser, 'pmc', 'number' );
+    push @opcodes, new LocalDir( $parser, 'result' => $_var, );
     my $_limit = new_tmp( $parser, 'pmc', 'number' );
     push @opcodes, new LocalDir( $parser, 'result' => $_limit, );
     my $_step = new_tmp( $parser, 'pmc', 'number' );
@@ -940,7 +942,11 @@
         'result' => $lbl_end,
     );
     push @opcodes, new LabelOp( $parser, 'arg1' => $lbl_blk, );
-
+    push @opcodes, new CloneOp(
+        $parser,
+        'arg1'   => $_var,
+        'result' => $_loc_v,
+    );
     foreach my $op ( @{$block} ) {
         if ( $op and $op->isa('BranchOp') ) {
             if ( $op->{result} eq 'break' ) {

Reply via email to