id,summary,reporter,owner,description,type,status,priority,milestone,component,version,severity,resolution,keywords,cc,lang,patch,platform
1131,segfault in Parrot_assign_p_p after merge of pcc branch.,coke,,"with latest parrot and partcl, the tcl code

{{{
proc sort {a b} { return 0 }
puts [lsort -command sort [list 1 2]]
}}}

Generates a segfault. This code uses the sort method on RPA, using a sub compiled with the dynamic PIR compiler. Here's the snippet around the segfault in PIR - note that the segfault is actually in the assign.

{{{
  # the assigns are necessary to avoid TT# 218
  $P0 = $P0.'getListValue'()
  $P1 = new 'ResizablePMCArray'
  assign $P1, $P0
  $P1.'sort'(compare)
  assign $P0, $P1
}}}


{{{
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7ff95aeb16f0 (LWP 25793)]
0x00007ff95a8b9271 in Parrot_assign_p_p (cur_opcode=0x7ff95ad850d8,
    interp=0xcaa010) at src/ops/set.ops:234
234       VTABLE_assign_pmc(interp, $1, $2);
(gdb) bt
#0  0x00007ff95a8b9271 in Parrot_assign_p_p (cur_opcode=0x7ff95ad850d8,
    interp=0xcaa010) at src/ops/set.ops:234
#1  0x00007ff95a92954d in runops_fast_core (interp=0xcaa010,
    runcore=<value optimized out>, pc=0xcaa010) at src/runcore/cores.c:665
#2  0x00007ff95a928de1 in runops_int (interp=0xcaa010, offset=0)
    at src/runcore/main.c:545
#3  0x00007ff95a9021f1 in runops (interp=0xcaa010, offs=<value optimized out>)
    at src/call/ops.c:97
#4  0x00007ff95a8fc7fb in Parrot_pcc_invoke_from_sig_object (interp=0xcaa010,
    sub_obj=<value optimized out>, call_object=<value optimized out>)
    at src/call/pcc.c:243
#5  0x00007ff95a8fc8d4 in Parrot_pcc_invoke_sub_from_c_args (interp=0xcaa010,
    sub_obj=0xdc6158, sig=<value optimized out>) at src/call/pcc.c:66
#6  0x0000000000400d2b in main (argc=2, argv=0x7fff62ebe6a8) at tcl.c:444
}}}",bug,closed,normal,,none,trunk,fatal,fixed,,,tcl,,
