https://issues.dlang.org/show_bug.cgi?id=14336
--- Comment #1 from Dmitry Olshansky <dmitry.o...@gmail.com> --- (In reply to Vladimir Panteleev from comment #0) > Created attachment 1495 [details] > Valgrind log > > Valgrind (with my Valgrind branch [1]) reports an incorrect memory access in > std.uni.CowArray destructors (see attachment). > > It looks like the following happens: > > - The destructor is finalizing a heap-allocated array of > InversionList!GcPolicy structs. > - InversionList doesn't have a destructor, but it has a CowArray field > ("data"). CowArray has a destructor, so one is automatically generated for > InversionList. > - CowArray!GcPolicy.~this calls the refCount @property. > - The refCount @property attempts to refer to the heap-allocated (via > GcPolicy) uint[] data field, which has already been destroyed by the GC. As > I understand, this is an invalid memory access. > Do you know a way to see if we are in GC finalizer vs normal destructor? --