# New Ticket Created by "Clinton A. Pierce"
# Please include the string: [perl #22877]
# in the subject line of all future correspondence about this issue.
# <URL: http://rt.perl.org/rt2/Ticket/Display.html?id=22877 >
This bug did not make itself known in a 6/23 checkout, and appeared sometime in the
last week (I've only now synched my copy with CVS).
I don't have a small test case for this. I apologize. To reproduce the bug:
checkout and build latest parrot tree
$ cd languages/BASIC/compiler
$ cat > test.bas
dim a$()
for i = 0 to 100 step .5
for j = 1 to 30
a$(j)=" "
next j
for j = 1 to 30
print " ";
next j
print i
next i
^D
$ perl compile.pl test.bas
$ ../../imcc/imcc TARG_test.imc
And the apparent symptom is the loop counter (i) only goes up to 2 -- it should have
gone to 100, by steps of 0.5. If I alter the BASIC program in any way the bug gets
delayed a little further or never happens at all.
Hacking a "sweepoff" and "collectoff" into the PIR (TARG_test.imc) before anything
else happens makes the bug go away. I don't think this is a BASIC bug, nor do I think
it's a register allocation/spilling problem in IMCC.
Placing traces in the PIR code causes the bug to move around also. Usually only
delaying the onset of the bug.