digitalmars.D.bugs - [Issue 15080] New: extern(C++) classes have wrong static data layout
- via Digitalmars-d-bugs (35/35) Sep 17 2015 https://issues.dlang.org/show_bug.cgi?id=15080
https://issues.dlang.org/show_bug.cgi?id=15080 Issue ID: 15080 Summary: extern(C++) classes have wrong static data layout Product: D Version: D2 Hardware: All OS: All Status: NEW Keywords: C++, wrong-code Severity: major Priority: P1 Component: dmd Assignee: nobody puremagic.com Reporter: yebblies gmail.com import core.stdc.stdio; extern(C++) class C { uint x = 1; uint y = 2; void func() {} } extern(C++) class D : C { uint z = 3; override void func() {} } __gshared D c = new D(); void main() { printf("%u\n", c.x); printf("%u\n", c.y); printf("%u\n", c.z); } The offsets are wrong because dmd assumes there is always a monitor word. --
Sep 17 2015