Hi,

The .end seems to be replaced by an implicit end.

-Vishal


On 6/29/06, Will Coleda via RT <[EMAIL PROTECTED]> wrote:

Hey, Vishal:

> [vsoni - Tue Jun 27 05:48:27 2006]:
>
> 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

Looks like the first line is fixed there (1) and then the guts are fixed
(2,3,4), but is the
duplicate line 4 correct? (is that corresponding to the implicit end that
PIR puts in, or the .end
of the subroutine?

If you can just validate that, we can apply this.

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




--
Thanks,
Vishal

Reply via email to