# 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;


Reply via email to