petdance/scratch — Issue #259: NQP-rx doesn't create PMC for string // expressions
Author: petdance
Created: 2011-11-14 05:55:28+00:00
State: open
Labels: bug, nqp, Pri-normal, Sev-medium

{{{
austin@andLinux:~/kakapo$ cat test.nqp

my %hash;
%hash := 1;

#my $x := ~ %hash;
my $y := ~ %hash // 'r';
}}}
Produces:
{{{
austin@andLinux:~/kakapo$ parrot-nqp test.nqp
Null PMC access in set_string_native()
current instr.: '_block11' pc 0 (EVAL_1:6)
called from Sub 'parrot;PCT;HLLCompiler;eval' pc -1 ((unknown file):-1)
called from Sub 'parrot;PCT;HLLCompiler;evalfiles' pc 1303 (compilers/pct/src/PCT/HLLCompiler.pir:707)
called from Sub 'parrot;PCT;HLLCompiler;command_line' pc 1489 (compilers/pct/src/PCT/HLLCompiler.pir:794)
called from Sub 'parrot;NQP;Compiler;main' pc -1 ((unknown file):-1)
austin@andLinux:~/kakapo$
}}}
The bad part of the code seems to be:
{{{
vivify_13:
set $S21, $P20
set $P18, $S21
defined $I23, $P18
if $I23, default_22
new $P24, "String"
assign $P24, "r"
set $P18, $P24
}}}
Note here the use of $P18, which has never been initialized.

Originally http://trac.parrot.org/parrot/ticket/1510