# New Ticket Created by Bob Rogers # Please include the string: [perl #59614] # in the subject line of all future correspondence about this issue. # <URL: http://rt.perl.org/rt3/Ticket/Display.html?id=59614 >
Invoking the attached test case fails in the following way: [EMAIL PROTECTED]> ./parrot test-exception-pc.pir too few arguments passed (1) - 2 params expected current instr.: 'main' pc 9 (test-exception-pc.pir:3) [EMAIL PROTECTED]> 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
.sub main :main push_eh handler test() ## NB: This makes sure the sub call PC is sufficiently ## different from the exception handler PC. print "foo\n" print "bar\n" .return () handler: .local pmc exception .local string message .get_results (exception, message) print "Error: " print message .end .sub test ## Throw an exception. $P0 = new 'Exception' $P0 = 'oops' throw $P0 .end