Tricky DMD bug, but I have no idea how to report

JN 666total at wp.pl
Thu Feb 7 22:16:19 UTC 2019


On Thursday, 7 February 2019 at 03:50:32 UTC, Vladimir Panteleev 
wrote:
> On Monday, 17 December 2018 at 21:59:59 UTC, JN wrote:
>> while working on my game engine project, I encountered a DMD 
>> codegen bug. It occurs only when compiling in release mode, 
>> debug works.
>
> Old thread, but FWIW, such bugs can be easily and precisely 
> reduced with DustMite. In your test script, just compile with 
> and without the compiler option which causes the bug to 
> manifest, and check that one works and the other doesn't.
>
> I put together a short article on the DustMite wiki describing 
> how to do this:
> https://github.com/CyberShadow/DustMite/wiki/Reducing-a-bug-with-a-specific-compiler-option

Does it also work for dub projects?

Anyway, I managed to reduce the source code greatly manually:

https://github.com/helikopterodaktyl/repro_d_release/

unfortunately I can't get rid of the dlib dependency. When built 
with debug, test outputs [0: Object], with release it outputs [0: 
null].

commenting this line out:
f.rotation = Quaternionf.fromEulerAngles(Vector3f(0.0f, 0.0f, 
0.0f));
or changing it to:
f.rotation = Quaternionf.identity();

is enough to make release output [0: Object] as well. I guess 
dlib is doing something dodgy with memory layout, but I can't see 
anything suspicious :(


More information about the Digitalmars-d-learn mailing list