<div style="white-space:pre-wrap">But only for the interceptors. __asan_memcpy should only be called if instrumentMemIntrinsic added it, in AddressSanitizer.cpp. I don't think macOS is doing anything special there (if it were, this patch wouldn't even have the section where I posted the comment, as ASan would be handling it already)<br><br> Filipe</div><br><div class="gmail_quote"><div dir="ltr">On Wed, 23 Nov 2016 at 19:50, Reid Kleckner <<a href="mailto:rnk@google.com">rnk@google.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">rnk added inline comments.<br class="gmail_msg">
<br class="gmail_msg">
<br class="gmail_msg">
================<br class="gmail_msg">
Comment at: lib/asan/asan_interceptors.cc:427<br class="gmail_msg">
+  ASAN_MEMMOVE_IMPL(nullptr, to, from, size);<br class="gmail_msg">
+#endif<br class="gmail_msg">
+}<br class="gmail_msg">
----------------<br class="gmail_msg">
filcab wrote:<br class="gmail_msg">
> I have a problem with this. It seems like it's hiding problems.<br class="gmail_msg">
><br class="gmail_msg">
> If the runtime called `__asan_memcpy`, it is because we actually had a call to `memcpy`, so we should check for overlap properly. This code is turning that off.<br class="gmail_msg">
> If `memcpy` and `memmove` are defined to the same, we shouldn't be erroring when `memmove` is called, though. But I don't see how calls to `__asan_memcpy`/`__asan_memmove` get converted to be the same function, since that's an ASan function, not the libc one.<br class="gmail_msg">
In practice, we found, as Apple did, that on platforms where memcpy aliases memmove, it is not feasible to intercept them separately. If you trace through the existing logic, you'll see that we're already suppressing this error in the same way on Mac.<br class="gmail_msg">
<br class="gmail_msg">
<br class="gmail_msg">
<a href="https://reviews.llvm.org/D27052" rel="noreferrer" class="gmail_msg" target="_blank">https://reviews.llvm.org/D27052</a><br class="gmail_msg">
<br class="gmail_msg">
<br class="gmail_msg">
<br class="gmail_msg">
</blockquote></div>