<div class="gmail_quote">On Fri, May 25, 2012 at 12:03 AM, Kostya Serebryany <span dir="ltr"><<a href="mailto:kcc@google.com" target="_blank">kcc@google.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<br><br><div class="gmail_quote"><div>On Thu, May 24, 2012 at 7:43 PM, John Criswell <span dir="ltr"><<a href="mailto:criswell@illinois.edu" target="_blank">criswell@illinois.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


<div>On 5/24/12 3:51 AM, Duncan Sands wrote:<br>
> Hi Nuno,<br>
><br>
>> I'm implementing the alloc_size function attribute in clang.<br>
> does anyone actually use this attribute?  And if they do, can it really buy<br>
> them anything?  How about "implementing" it by ignoring it!<br>
<br>
</div>Tools like ASan and SAFECode *could* use this attribute</blockquote><div><br></div></div><div>A case where this may be useful for asan: </div><div>   size_t n, m; ...</div><div>   int *x = new int [n]; ...</div><div>

   x[m]  // here we can check "m < n" instead of a more expensive shadow memory lookup. </div>
<div>For asan such optimization is possible only if 'x' does not escape the current function before the use, </div><div>otherwise we may lose a use-after-free. </div><div><br></div><div>I don't know whether such optimization will fire often enough to pay the price for the added complexity of the implementation.</div>


<div>It would be interesting to see statistics on some huge app.</div></div></blockquote><div><br></div><div>I think this is key -- there should be some clear numbers and evidence that this is a really important semantic extension in order to get accurate and efficient results.</div>
<div><br></div><div>And as Duncan points out, we should be confident that there is no existing mechanism to get the same optimization improvements.</div></div>