<div style="font-family: arial, helvetica, sans-serif"><font size="2">Hello,<div><br></div><div>On modern Linux installs, glibc has a very annoying practice: it adds an empty exception specifier to lots of libc functions as an optimization. It only does this if the compiler is modern and GCC-like, and we are compiling in C++ mode.</div>
<div><br></div><div>This, however, causes GCC to complain about signature mismatches between the glibc functions declared in malloc.h and those defined as an alias in the interceptors library:</div><div><br></div><div>..../asan_malloc_linux.cc:57:1: error: declaration of 'void free(void*)' has a different exception specifier</div>
<div>/usr/include/malloc.h:66:13: error: from previous declaration 'void free(void*) throw ()'</div><div><br></div><div><br></div><div>I've attached a complete hack of a patch to address this... but surely there is a better way? I'm open to suggestions about this sticky issue.</div>
<div><br></div><div>Amusingly, this is only diagnosed by GCC, not by Clang. =] So I didn't even notice it at first.</div><div>-Chandler</div></font></div>