<div style="font-family: arial, helvetica, sans-serif; font-size: 10pt">Also note that this is not the kind of bug for which asan is good.<div>If we are dereferencing an uninitialized pointer, there is a high chance that the program will SEGV w/o any tool.</div>
<div>If we are unlucky and the garbage is accidentally equal to some valid address, asan will not catch it either. </div><div>Valgrind (and work-in-progress MemorySanitizer) will catch this. </div><div><br></div><div>--kcc <br>
<br><div class="gmail_quote">On Sat, Nov 3, 2012 at 5:38 AM, Eli Friedman <span dir="ltr"><<a href="mailto:eli.friedman@gmail.com" target="_blank">eli.friedman@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im">On Fri, Nov 2, 2012 at 6:27 PM, Rafael Espíndola<br>
<<a href="mailto:rafael.espindola@gmail.com">rafael.espindola@gmail.com</a>> wrote:<br>
> I just tried asan on an optimized  32 bit build of<br>
> -------------------------------------<br>
> #include <stdint.h><br>
> __attribute__((noinline))<br>
>  void f(uint64_t *p) {<br>
>   *p = 42;<br>
> }<br>
> int main() {<br>
>   void *p;<br>
>   f((uint64_t*)&p);<br>
> }<br>
> ------------------------------------<br>
><br>
> and it correctly catches the invalid access. If I comment the<br>
> attribute, the optimizers find and exploit the undefined behavior and<br>
> asan fails to report it. Is this the expected behavior? Is this<br>
> something that needs -fcatch-undefined-behavior instead?<br>
<br>
</div>For performance reasons, asan runs at the end of the optimization<br>
pipeline, so it doesn't check loads which get removed by the IR<br>
optimizers.<br>
<span class="HOEnZb"><font color="#888888"><br>
-Eli<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:LLVMdev@cs.uiuc.edu">LLVMdev@cs.uiuc.edu</a>         <a href="http://llvm.cs.uiuc.edu" target="_blank">http://llvm.cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a><br>
</div></div></blockquote></div><br></div></div>