Summary: dmd: ABI breakage/regression
           Product: D
           Version: D1
          Platform: Other
        OS/Version: All
            Status: NEW
          Severity: regression
          Priority: P2
         Component: DMD

--- Comment #0 from 2010-11-19 08:19:30 PST ---
At some point, both dmd and Phobos1 added a new member to TypeInfo_Struct:

The way dmd handles this causes an ABI breakage: dmd will use the _calculated_
size of the struct to calculate the offset of the name string. After that, dmd
_unconditionally_ writes the new m_flags field, and writes it at the same
offset where the name string is supposed to start.

As a result, TypeInfo names for structs are broken. The first 4 items of
typeid(somestruct).toString() will contain garbage. I'm not really sure why
after these 4 bytes, the expected string starts. Either I got it wrong, or the
backend data segment writer does strange things?

The problem doesn't appear if the object.d[i] contains the proper m_align. E.g.
compare: (WARNING:

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

Reply via email to