The following code segfaults when compiled with current DMD github snapshot. It seems that array elements of "frop" are getting garbage collected after the parent class Foo's object is collected. Works fine with dmd-2.059 and dmd-2.060. class Frop { bar _v; } struct bar { static Foo _root; ~this() { _root.del(); } } class Foo { int _x; Frop[] _frop; this() { bar._root = this; _frop = [new Frop()]; } void del() {} } void main() { auto foo = new Foo ; }
Not a bug http://forum.dlang.org/thread/mailman.2438.1354423511.5162.digitalmars-d@puremagic.com