Infinite recursion with memcpy and memset/memclr lowerings
j at j.nl
Tue Dec 24 13:02:51 UTC 2019
On Thursday, 19 July 2018 at 18:49:07 UTC, Johan Engelen wrote:
> On Thursday, 19 July 2018 at 12:12:28 UTC, Mike Franklin wrote:
>> LDC seems to recognize the body of the function and rewrites
>> it as `__aeabi_memclr`, causing infinite recursion. Is there
>> some way I can instruct the compiler to stop doing that?
> You can use `-disable-simplify-libcalls`.
> Looks like we need to implement something equivalent to Clang's
> `-fno-builtin` or `-ffreestanding` etc. After some quick
> research, I don't think it is currently possible to disable
> these optimizations just for one function, can only disable it
> for one compiler invoke.
LLVM now supports disabling these optimizations per function:
More information about the digitalmars-d-ldc