# New Ticket Created by  Klaas-Jan Stol 
# Please include the string:  [perl #58070]
# in the subject line of all future correspondence about this issue. 
# <URL: http://rt.perl.org/rt3/Ticket/Display.html?id=58070 >


the current implementation for PIR allows one to declare .locals in a
.begin_call/.end_call sequence, after the .call directive, like so:

.begin_call
.arg 1
.arg 2
.call $P0
.local int a, b, c
.result a
.result b
.result c
.end_call

(this is short for (a, b, c) = $P0(1, 2) )

IMHO, the whole sequence of directives from .begin_call to .end_call should
be considered 1 statement; having .local declarations intermixed with
.result directives is a bit strange, because the .local directive itself is
not part of the sequence of directives to make the call.

Furthermore, the locals stay in scope after the .end_call directive.

I propose to disallow this language 'feature', and force the programmer to
write the above example as follows:

.local int a, b, c
.begin_call
.arg 1
.arg 2
.call $P0
.result a
.result b
.result c
.end_call

comments welcome.

kjs

Reply via email to