SR-15946: Reach out for help in Mandatory SIL Linker pass

Trying hard to make progress...

expected type '(UnsafeRawPointer, UnsafeRawPointer, Int) -> Int32' not equal to '(UnsafeRawPointer?, UnsafeRawPointer?, Int) -> Int32'

It turns out that Mandatory SIL Linker wrongly regard the type as (UnsafeRawPointer?, UnsafeRawPointer?, Int) -> Int32, and doesn't agree with SILGen which should be the correct result because the original definition was int __cdecl memcmp(void const* _Buf1, void const* _Buf2, size_t _Size);.

Anyone having idea on this? Why is the behavior related to how we reference string.h header?