<div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div style="word-wrap:break-word"><div>Some somewhat trivial issues:</div><div><br></div><div>
<div>a) Please go ahead and hide the non-user visible flags.</div></div></div></blockquote><div><br></div><div>How? (sorry for ignorance)</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div style="word-wrap:break-word"><div><div><br></div><div>b) Not a big fan of this style of avoid 80-col wrap:</div><div><br></div><div><div>+Instruction *AddressSanitizer::generateCrashCode(</div><div>+    IRBuilder<> &IRB, Value *Addr, int TelltaleValue) {</div>
</div></div></div></blockquote><div><br></div><div>Hmmm. This is in the coding style, isn't it?? </div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div style="word-wrap:break-word"><div><div><div><br></div><div>c) +  // which will be lowered to a cusom assembly.</div><div><br></div><div>s/cusom/custom</div></div></div></div></blockquote><div><br></div><div>fixed. </div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div style="word-wrap:break-word"><div><div><div><br></div><div>d) </div><div><br></div><div><div>+  if (TypeSize != 8 && TypeSize != 16 &&</div>
<div>+      TypeSize != 32 && TypeSize != 64 && TypeSize != 128) {</div><div>+    // TODO(kcc): do something better.</div><div>+    return;</div><div>+  }</div></div><div><br></div><div>What's the reason behind this?</div>
</div></div></div></blockquote><div><br></div><div>We may have a load of some different size, can't we? </div><div>E.g. size==1 will indicate that we are actually loading something like a bit field. </div><div><br></div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div style="word-wrap:break-word"><div><div><div><br></div><div>Perhaps not so trivial:</div><div><br></div>
<div>a) Where are the asan_* functions? Where are they supposed to live?</div></div></div></div></blockquote><div><br></div><div>There is the whole run-time library, which was described in my initial post 3 months ago. </div>
<div><a href="http://lists.cs.uiuc.edu/pipermail/llvmdev/2011-June/040800.html">http://lists.cs.uiuc.edu/pipermail/llvmdev/2011-June/040800.html</a></div><div>The code resides in <a href="http://code.google.com/p/address-sanitizer/source/browse/#svn%2Ftrunk%2Fasan">http://code.google.com/p/address-sanitizer/source/browse/#svn%2Ftrunk%2Fasan</a></div>
<div>I'd be willing to contribute this code to LLVM as well, but it'll have to be a separate thing.</div><div>--kcc </div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div style="word-wrap:break-word"><div><div><div><br></div><div>I'll probably have more, but it's a start and the discussion on the library functions probably should happen sooner rather than later.</div><div><br>
</div><span class="HOEnZb"><font color="#888888"><div>-eric</div></font></span></div></div></div></blockquote></div><br>