[Issue 13365] New: Anonymous union template mixin data layout
via Digitalmars-d-bugs
digitalmars-d-bugs at puremagic.com
Fri Aug 22 16:44:58 PDT 2014
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 at puremagic.com
Reporter: safety0ff.bugz at 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);
}
--
More information about the Digitalmars-d-bugs
mailing list