https://issues.dlang.org/show_bug.cgi?id=14502
--- Comment #1 from Tomáš Chaloupka <chalu...@gmail.com> --- Its really hard for me (as a D noob) to dustmite something usable from this :( The output from gdb is: Program received signal SIGSEGV, Segmentation fault. 0x00007ffff7aa5407 in object.TypeInfo_Class.getHash(const(void*)) () from /opt/dmd-2.067/lib64/libphobos2.so.0.67 #0 0x00007ffff7aa5407 in object.TypeInfo_Class.getHash(const(void*)) () from /opt/dmd-2.067/lib64/libphobos2.so.0.67 #1 0x00007ffff7ac371a in _aaInX () from /opt/dmd-2.067/lib64/libphobos2.so.0.67 #2 0x00007ffff7ac36d0 in _aaGetRvalueX () from /opt/dmd-2.067/lib64/libphobos2.so.0.67 #3 0x0000000000407bf8 in test.HavlakLoopFinder.DSF(test.BasicBlock, test.UnionFindNode[], int[test.BasicBlock], int[], int) () #4 0x0000000000407c48 in test.HavlakLoopFinder.DSF(test.BasicBlock, test.UnionFindNode[], int[test.BasicBlock], int[], int) () #5 0x0000000000407c48 in test.HavlakLoopFinder.DSF(test.BasicBlock, test.UnionFindNode[], int[test.BasicBlock], int[], int) () It has deterministic behaviour, always segfaults on the 12th iteration. I've made a PR https://github.com/kostya/benchmarks/pull/23 which ads final to classes to speed it up a bit and this problem no longer occur with these changes - I have no idea why --