Indeed it does seem to be an inlining issue. As well as the compiler flags, you presented, you can also replicate using the following as well: For gdc: '-g -O3' and '-g -Os -frelease' For gdmd: '-g -O -inline' and '-g -O -release'
In all cases, including the flag '-fno-inline' works around the problem. Regards -- Iain Buclaw *(p < e ? p++ : p) = (c & 0x0f) + '0';