Can't implement conformant memset/memcpy without compiler -ffreestanding support
Zheng Luo (Vic)
vicluo96 at gmail.com
Wed Jul 25 09:23:15 UTC 2018
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.
More information about the Digitalmars-d
mailing list