[LLVMdev] PATCH: AddressSanitizer: Fix errors about mis-matched exception specifiers for intercepted libc functions on Linux

Alexander Potapenko glider at google.com
Mon Jun 25 02:42:55 PDT 2012


On Mon, Jun 25, 2012 at 1:10 PM, Chandler Carruth <chandlerc at google.com> wrote:
> Hello,
>
> 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.
>
> 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:
>
> ..../asan_malloc_linux.cc:57:1: error: declaration of 'void free(void*)' has
> a different exception specifier
> /usr/include/malloc.h:66:13: error: from previous declaration 'void
> free(void*) throw ()'
Looking at /usr/include/malloc.h I don't see any instances of throw()
(Goobuntu Lucid)
Shouldn't we have the same set of standard headers?



More information about the llvm-dev mailing list