Ticket #1131 (closed bug: fixed)
segfault in Parrot_assign_p_p after merge of pcc branch.
Reported by: | coke | Owned by: | |
---|---|---|---|
Priority: | normal | Milestone: | |
Component: | none | Version: | trunk |
Severity: | fatal | Keywords: | |
Cc: | Language: | tcl | |
Patch status: | Platform: |
Description
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
Change History
Note: See
TracTickets for help on using
tickets.