On Wed, Oct 14, 2009 at 05:56:10PM -0400, Bartosz Milewski wrote:
> The problem was in core.thread. I tried to implement a struct Tid (thread ID) 
> with reference-counting semantics and deterministic destruction. It passed 
> all the tests, but when it was used in one particular place in druntime it 
> produced incorrect assembly. Even the slightest change made the bug 
> disappear, so I wasn't able to reproduce it under controlled conditions.

Was it by any chance a null this pointer making its way into the ebx register
somehow, thus causing an access violation on Windows seemingly at random?
(My bug didn't happen if I compiled the exact same code on Linux - I figure
 it must be a Windows codegen problem.)

If so, I've been fighting that bug for over two years, similarly unable to
track down a small test case. I haven't put it on bugzilla since I can't
even really prove it exists to an outsider. I just keep hoping that the
next dmd release will magically fix it.

-- 
Adam D. Ruppe
http://arsdnet.net

Reply via email to