[perl #59614] Wrong PC/line reported in handler arg-passing error

Will Coleda via RT parrotbug-followup at parrotcode.org
Mon Sep 21 00:35:15 UTC 2009


On Fri Oct 03 14:58:28 2008, rgrjr wrote:
>    Invoking the attached test case fails in the following way:
> 
> 	rogers at rgr> ./parrot test-exception-pc.pir 
> 	too few arguments passed (1) - 2 params expected
> 	current instr.: 'main' pc 9 (test-exception-pc.pir:3)
> 	rogers at rgr> 
> 
> The problem is that pc 9/line 3 is the location of the invokecc
> instruction that calls the erring test sub, not the location of the
> get_results instruction where the problem is detected.  I'm not sure 
how
> to fix this, because it messes greatly with the modularity of how 
return
> addresses are tracked.
> 
>    But I think it really ought to be fixed before the next release --
> that or the arg-checking requirement for exception handlers should be
> relaxed, at least temporarily.  I stumbled onto this when Kea-CL fell
> afoul of the exception handling arg change introduced in r31294 (about
> which I don't recall seeing any mention on the list).  Because of the
> misplaced error message, it took me a while to track it down.
> 
> 					-- Bob
> 

Bob -

I can no longer duplicate the original intent of this ticket, as the 
sample segfaults - when I try to cleanup the sample to avoid the 
segfault, I don't get any line number errors.

If you can duplicate the original line # error, please open a new trac 
ticket at https://trac.parrot.org/

I've opened the segfault as https://trac.parrot.org/parrot/ticket/1027 
and added a TODO test to track it in t/compilers/imcc/syn/regressions.t

-- 
Will "Coke" Coleda


More information about the parrot-dev mailing list