# New Ticket Created by  Vishal Soni 
# Please include the string:  [perl #39638]
# in the subject line of all future correspondence about this issue. 
# <URL: https://rt.perl.org/rt3/Ticket/Display.html?id=39638 >


Hi,

This was a straight forward fix. The line number was being decremented
at the start of a 'sub' token imcc.y.


Thanks,
Vishal

Here is a sample run

Sample Code:
-------------------
.sub main :main
    print "2\n"
    print "3\n"
    print "4\n"
.end

Output:
--------
./parrot -d 10 ./hello.pir
1
last:5
pcc_sub main nparams 0

Dumping the instructions status:
-------------------------------
nins line blck deep flags           type opnr size   pc  X ins
   0    1    0    0     0          80000   -1    0    0     main:
   1    2    0    0     1              0  413    2    0    print "2\n"
   2    3    0    0     1              0  413    2    2    print "3\n"
   3    4    0    0     1              0  413    2    4    print "4\n"
   4    4    0    0     0          18000    0    1    6    end

Labels
name    pos     last ref
-----------------------


Dumping the CFG:
-------------------------------
0 (0)    ->              <-


Dumping the Dominators Tree:
-------------------------------
 0 <- ( 0)  0

Loop info
---------



Patch
--------

Index: compilers/imcc/imcc.y
===================================================================
--- compilers/imcc/imcc.y       (revision 13035)
+++ compilers/imcc/imcc.y       (working copy)
@@ -202,7 +202,7 @@
     r->type = (r->type & VT_ENCODED) ? VT_PCC_SUB|VT_ENCODED :
VT_PCC_SUB;
     r->pcc_sub = calloc(1, sizeof(struct pcc_sub_t));
     cur_call = r;
-    i->line = line - 1;
+    i->line = line ;
     add_namespace(interp, unit);
     return i;
 }



Index: compilers/imcc/imcc.y
===================================================================
--- compilers/imcc/imcc.y       (revision 13035)
+++ compilers/imcc/imcc.y       (working copy)
@@ -202,7 +202,7 @@
     r->type = (r->type & VT_ENCODED) ? VT_PCC_SUB|VT_ENCODED : VT_PCC_SUB;
     r->pcc_sub = calloc(1, sizeof(struct pcc_sub_t));
     cur_call = r;
-    i->line = line - 1;
+    i->line = line ;
     add_namespace(interp, unit);
     return i;
 }

Reply via email to