On Wednesday, 25 July 2018 at 09:16:19 UTC, rikki cattermole wrote:
On 25/07/2018 8:59 PM, Zheng (Vic) Luo wrote:
Minimal example in D: https://run.dlang.io/is/EYVTzb. Affects at least dmd and ldc.


https://run.dlang.io/is/8tPOVX

Note that switch void* to ubyte* won't matter once its extern(C)'d.

My version (_memcpy_impl2) is just the regular old memcpy without optimizations. Your example is syntax sugar for a function call.

There is no guarantee that a compiler (in a future version or after enabling some optimization flags) will not optimize _memcpy_impl2 into "call memset". Maybe it just happens that the optimizer is not smart enough to optimize this, because nothing with -beeterC prohibits the compiler to do so.

Reply via email to