<div style="font-family: arial, helvetica, sans-serif"><font size="2"><br><br><div class="gmail_quote">On Mon, Jun 25, 2012 at 2:01 PM, Chandler Carruth <span dir="ltr"><<a href="mailto:chandlerc@google.com" target="_blank">chandlerc@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 style="font-family:arial,helvetica,sans-serif"><font size="2"><div class="gmail_quote">I really don't see why this is the correct fix.</div>
<div class="gmail_quote"><br></div><div class="gmail_quote">1) I like including the system's headers. It ensures that the interceptor DTRT.</div>
<div class="gmail_quote">2) It's hardly the only system header you pull in here</div></font></div></blockquote><div><br></div><div>Oh, it actually is (was) the only system header left in this file. I am glad to be able to get rid of it. </div>
<div>I've been fighting the system headers for a long time now: for this kind of code they are surprisingly painful.</div><div>Now, we have zero system headers in .h files and just a few in OS-dependent .cc files. </div>
<div><br></div><div>We are replacing functions that have a very clear "C" interface which is not going to change, so including system headers does not help. </div><div>But it actually hurts very much: event some innocent system headers like stddef.h or stdlib.h bring along some unexpected typedefs, definds, decls, etc. </div>
<div>Things get worse if a .cc file is used on more than one platform (e.g. <span style>asan_malloc_linux.cc is also used on Android</span>) where the system headers are different.</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="font-family:arial,helvetica,sans-serif"><font size="2"><div class="gmail_quote">3) I think we should probably match what glibc does when declaring these routines. any reason to avoid this?</div></font></div></blockquote>
<div><br></div><div>We only need to keep the functions binary-compatible. </div><div><br></div><div><br></div><div>--kcc </div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div style="font-family:arial,helvetica,sans-serif"><font size="2"><div><div class="h5">
<div class="gmail_quote"><br></div><div class="gmail_quote">On Mon, Jun 25, 2012 at 3:00 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">

<div style="font-family:arial,helvetica,sans-serif"><font size="2">done: r159132.<div><div><br><br><div class="gmail_quote">On Mon, Jun 25, 2012 at 1:47 PM, 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"><div style="font-family:arial,helvetica,sans-serif"><font size="2">.. And the right fix would be to completely get rid of "#include <malloc.h>" in this file. <div>


I'll do that change. </div><div><br>
</div><div>--kcc <div><div><br><br><div class="gmail_quote">On Mon, Jun 25, 2012 at 1:42 PM, Alexander Potapenko <span dir="ltr"><<a href="mailto:glider@google.com" target="_blank">glider@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>On Mon, Jun 25, 2012 at 1:10 PM, Chandler Carruth <<a href="mailto:chandlerc@google.com" target="_blank">chandlerc@google.com</a>> wrote:<br>
</div><div>> Hello,<br>
><br>
> On modern Linux installs, glibc has a very annoying practice: it adds an<br>
> empty exception specifier to lots of libc functions as an optimization. It<br>
> only does this if the compiler is modern and GCC-like, and we are compiling<br>
> in C++ mode.<br>
><br>
> This, however, causes GCC to complain about signature mismatches between the<br>
> glibc functions declared in malloc.h and those defined as an alias in the<br>
> interceptors library:<br>
><br>
> ..../asan_malloc_linux.cc:57:1: error: declaration of 'void free(void*)' has<br>
> a different exception specifier<br>
> /usr/include/malloc.h:66:13: error: from previous declaration 'void<br>
> free(void*) throw ()'<br>
</div>Looking at /usr/include/malloc.h I don't see any instances of throw()<br>
(Goobuntu Lucid)<br>
Shouldn't we have the same set of standard headers?<br>
<div><div>_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:LLVMdev@cs.uiuc.edu" target="_blank">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></div></font></div>
</blockquote></div><br></div></div></font></div>
</blockquote></div><br></div></div></font></div>
</blockquote></div><br></font></div>