# New Ticket Created by Steve Gunnell # Please include the string: [perl #37992] # in the subject line of all future correspondence about this issue. # <URL: https://rt.perl.org/rt3/Ticket/Display.html?id=37992 >
It hasn't fixed my Segfaulting but along the way valgrind was reporting a lot of errors like: ==7675== Conditional jump or move depends on uninitialised value(s) ==7675== at 0x80CC77A: trace_mem_block (dod.c:1023) ==7675== by 0x80CEC3C: trace_system_stack (cpu_dep.c:117) ==7675== by 0x80CEBFC: trace_system_areas (cpu_dep.c:98) ==7675== by 0x80CBF56: Parrot_dod_trace_root (dod.c:375) ==7675== by 0x80CBFAF: trace_active_PMCs (dod.c:387) ==7675== by 0x80CCAAC: Parrot_dod_ms_run (dod.c:1232) ==7675== by 0x80CCB75: Parrot_do_dod_run (dod.c:1271) ==7675== by 0x812B579: mem_allocate (resources.c:142) ==7675== by 0x812BF37: Parrot_allocate_string (resources.c:613) ==7675== by 0x808DA6D: Parrot_unmake_COW (string.c:79) ==7675== by 0x81B69D4: upcase (ascii.c:168) ==7675== by 0x8090CA1: string_upcase_inplace (string.c:2590) ==7675== The cause seems to be a reversed test in dod.c --- src/dod.c 2005-12-20 21:36:58.000000000 +0800 +++ src/dod.new 2005-12-20 21:36:45.000000000 +0800 @@ -1004,7 +1004,7 @@ if (!lo_var_ptr || !hi_var_ptr) return; - if (lo_var_ptr < hi_var_ptr) { + if (lo_var_ptr > hi_var_ptr) { tmp_ptr = hi_var_ptr; hi_var_ptr = lo_var_ptr; lo_var_ptr = tmp_ptr;