Summary: 64-bit array append generates inline code to copy new
                    data, but does not call postblit
           Product: D
           Version: D2
          Platform: x86_64
        OS/Version: All
            Status: NEW
          Severity: major
          Priority: P2
         Component: DMD

--- Comment #0 from Steven Schveighoffer <> 2011-07-01 
05:38:11 PDT ---
The 64-bit compiler no longer calls _d_arrayappendT directly, it now calls
_d_arrayappendCTX, which does *not* copy the new data to the array.

This is fine, because the compiler generates the necessary code to copy the new
data.  However, the compiler does *not* call postblit on that data.

Two ways to fix this:

1. Simply switch to calling _d_arrayappendT again, and don't do the copying
2. Insert a call to __doPostblit (or whatever you want to rename it, it's in
rt/lifetime.d) after copying the data, but only if the type *has* a valid

This is the reason the runtime is currently failing unit tests on 64-bit code.

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

Reply via email to