Summary: Random crashes / heisenbugs caused by dmd commit 478
           Product: D
           Version: unspecified
          Platform: Other
        OS/Version: Linux
            Status: NEW
          Keywords: patch, wrong-code
          Severity: regression
          Priority: P2
         Component: DMD

--- Comment #0 from 2010-05-19 15:46:03 PDT ---
This bug report is for dmd 1.061. (Bugzilla doesn't list the newer dmd
Older versions are not affected.

Compiling and running a mid-sized project with dmd 1.061, I experience random
segfaults and memory corruption. I have no clue what it causes, I have no test
case, and I don't know how to progress further.

One symptom was that looking up an associative array string key crashed in
Tango's murmur hash routine. Outputting the string showed it was corrupted
(even though I don't know why the string could be successfully printed, but the
hash routine failed.) Another symptom was that taking the address of a virtual
function from a valid, non-null object references yielded a corrupted delegate:
the .funcptr contained something like 0x6xxxxxxx, which is way off the normal
function addresses around 0x8xxxxxx. Which crash exactly happened first changed
as I inserted print calls for debugging.

However, I could track down what change exactly caused this: it's dmd commit
478 ( Revision 477 still worked

Undoing that commit makes it work with dmd 1.061, and I suggest the inverse
patch as the solution.

Configure issuemail:
------- You are receiving this mail because: -------

Reply via email to