Thread overview
[Issue 14227] Incorrect passed a delegate as argument with null value.
Feb 26, 2015
Alexey Poryadin
Feb 26, 2015
safety0ff.bugz
Mar 25, 2016
yebblies
February 26, 2015
https://issues.dlang.org/show_bug.cgi?id=14227

--- Comment #1 from Alexey Poryadin <alexey.poryadin@gmail.com> ---
Starting program: /work/research/test
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".

Breakpoint 1, test.Class.set() (this=0x7ffff7ed8ff0, callback=..., b=1, a=1) at
/work/research/test.d:7
7            writefln("(callback !is null) %s", (callback !is null));
(gdb) print callback
$1 = {ctxptr = 0x0, funcptr = 0x3ff0000000000000}
(gdb)
-------
This is debug output that I took.

--
February 26, 2015
https://issues.dlang.org/show_bug.cgi?id=14227

safety0ff.bugz <safety0ff.bugz@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |wrong-code
                 CC|                            |safety0ff.bugz@gmail.com

--- Comment #2 from safety0ff.bugz <safety0ff.bugz@gmail.com> ---
This seems to be a heisenbug in the backend.
It disappears when optimizations are enabled.
Looking at the assembly, the compiler doesn't clear RDX for the first call to
test.Class.set, but does for the second call, resulting in garbage in RDX for
the first call.

Still occurs with recent git version.

--
March 25, 2016
https://issues.dlang.org/show_bug.cgi?id=14227

yebblies <yebblies@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
                 CC|                            |yebblies@gmail.com
         Resolution|---                         |WORKSFORME

--- Comment #3 from yebblies <yebblies@gmail.com> ---
I can't reproduce this.  I suspect it was a duplicate of one of the many 64-bit ABI bugs fixed in the last couple of years.

--