digitalmars.D.bugs - [Issue 13365] New: Anonymous union template mixin data layout
- via Digitalmars-d-bugs (48/48) Aug 22 2014 https://issues.dlang.org/show_bug.cgi?id=13365
https://issues.dlang.org/show_bug.cgi?id=13365 Issue ID: 13365 Summary: Anonymous union template mixin data layout Product: D Version: D2 Hardware: All OS: Linux Status: NEW Severity: major Priority: P1 Component: DMD Assignee: nobody puremagic.com Reporter: safety0ff.bugz gmail.com The following crashes at different places with 2.065 and 2.066. The bug doesn't seem to affect LDC. mixin template MT(string id) { union { mixin("void* dummy"~id~";"); } } struct S { int i; mixin MT!"x"; mixin MT!"y"; } import std.stdio; void main() { S s = void; s.i = 1; s.i.offsetof.writeln; assert(s.i == 1); s.dummyx = null; s.dummyx.offsetof.writeln; assert(s.i == 1); s.dummyy = null; s.dummyy.offsetof.writeln; assert(s.i == 1); char a,b; s.dummyx = cast(void*)&a; assert(s.dummyx is &a); assert(s.dummyy is null); s.dummyy = cast(void*)&b; assert(s.dummyx is &a); assert(s.dummyy is &b); } --
Aug 22 2014