<div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Feb 20, 2014 at 12:42 AM, Evgeniy Stepanov <span dir="ltr"><<a href="mailto:eugenis@google.com" target="_blank">eugenis@google.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div id=":gkl" style="overflow:hidden">  We should really just get rid of this case. It does not do anything useful: you still need to protect these calls with #ifdef-s to support other compilers.<br>

<br>
  Other sanitizers don't provide interface stubs for non-instrumented code.<br>
<br>
  Even so, consistency is good. Feel free to submit this change if it helps your use case.<br></div></blockquote></div><br>Currently we have code which is not fully guarded by __has_feature(memory_sanitizer) and using these APIs. It used to work because it used the stubs instead. Now it references APIs which have no stubs.</div>
<div class="gmail_extra"><br></div><div class="gmail_extra">While I'm adding stubs, I'm just as happy to move all code behind __has_feature(memory_sanitizer). I don't have a strong opinion about stubs vs. no-stubs. As you've pointed out, the *behavior* won't be sensible with the stubs, so it is mostly a matter of whether having stubs is a useful simplification for programs that need to interface with msan when it is enabled but no-op such interfacing when it is not enabled. You would have a better idea than I about what the correct path forward is here.</div>
</div>