http://d.puremagic.com/issues/show_bug.cgi?id=5241
Summary: dmd: ABI breakage/regression Product: D Version: D1 Platform: Other OS/Version: All Status: NEW Severity: regression Priority: P2 Component: DMD AssignedTo: nob...@puremagic.com ReportedBy: nfx...@gmail.com --- Comment #0 from nfx...@gmail.com 2010-11-19 08:19:30 PST --- At some point, both dmd and Phobos1 added a new member to TypeInfo_Struct: m_flags. 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: http://www.dsource.org/projects/phobos/browser/branches/phobos-1.x/phobos/object.d#L141 http://www.dsource.org/projects/tango/browser/trunk/object.di#L163 (WARNING: BSD LICENSED CODE) -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------