Carl MXXsak (via RT) wrote: > # New Ticket Created by "Carl Mäsak" > # Please include the string: [perl #56640] > # in the subject line of all future correspondence about this issue. > # <URL: http://rt.perl.org/rt3/Ticket/Display.html?id=56640 > > > > A "Null PMC access" is produced when evaluating the return value from > an empty block. The attached patch fixes the problem. > > $ cat undef.pl > sub f { undef } > say f > $ ./perl6 undef.pl > > $ cat nothing.pl > sub f { } > say f > $ ./perl6 nothing.pl > Null PMC access in get_string() > current instr.: 'print' pc 11069 (src/gen_builtins.pir:7223) > called from Sub 'say' pc 11091 (src/gen_builtins.pir:7233) > called from Sub '_block11' pc 28 (EVAL_13:11) > called from Sub 'parrot;PCT::HLLCompiler;eval' pc 806 > (src/PCT/HLLCompiler.pir:481) > called from Sub 'parrot;PCT::HLLCompiler;evalfiles' pc 1088 > (src/PCT/HLLCompiler.pir:610) > called from Sub 'parrot;PCT::HLLCompiler;command_line' pc 1267 > (src/PCT/HLLCompiler.pir:699) > called from Sub 'parrot;Perl6::Compiler;main' pc 13257 (perl6.pir:172) > perl6(73490) malloc: *** error for object 0x28909d0: double free > *** set a breakpoint in malloc_error_break to debug > Segmentation fault > > $ patch -p0 < empty-block.patch ; make perl6 > [...] > > $ ./perl6 nothing.pl > > $
Thank you for your patch, but it produces a lot of test failures spectest_regression. So the patch needs more work, but I don't feel competent enough for that right now. Cheers, Moritz -- Moritz Lenz http://moritz.faui2k3.org/ | http://perl-6.de/