Have you looked at AddressSanitizer? <a href="http://clang.llvm.org/docs/AddressSanitizer.html">http://clang.llvm.org/docs/AddressSanitizer.html</a><br><br><div class="gmail_quote">On Mon, May 7, 2012 at 11:54 AM, Nuno Lopes <span dir="ltr"><<a href="mailto:nunoplopes@sapo.pt" target="_blank">nunoplopes@sapo.pt</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi,<br>
<br>
I would like to add a new option to clang: -fbounds-checking. It emits<br>
run-time bounds checks for array/pointers dereferencing based on<br>
LLVM's object size built-in. The code to emit the checks is already in<br>
clang; it's just a matter of wiring the flag.<br>
The other change is to make -fcatch-undefined-behavior imply<br>
-fbounds-checking (so that it keeps doing these kinds of checks).<br>
<br>
This flag supports an additional integer parameter to control the<br>
amount of run-time performance penalty you're willing to afford. For<br>
example, -fbounds-checking=1 will only resolve stuff at compile-time,<br>
while at level 2 it can defer some stuff to run-time. This will come<br>
in a separate patch to LLVM.<br>
<br>
Comments, ideas, etc?<br>
<br>
Thanks,<br>
Nuno<br>
_______________________________________________<br>
cfe-commits mailing list<br>
<a href="mailto:cfe-commits@cs.uiuc.edu">cfe-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits</a><br>
</blockquote></div><br>