From: Pedro Alves Date: Tue, 25 Oct 2016 12:32:26 +0000 (+0100) Subject: new-op.c: Add comment about -fsanitize=address X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=e4426cb42f082b0dc1298a173014f18ff0ff7ea7;p=binutils-gdb.git new-op.c: Add comment about -fsanitize=address gdb/ChangeLog: 2016-10-25 Pedro Alves * common/new-op.c: Add comment about -fsanitize=address. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 40fab9bcd1e..c2a8579a5c2 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,7 @@ +2016-10-25 Pedro Alves + + * common/new-op.c: Add comment about -fsanitize=address. + 2016-10-25 Pedro Alves * common/common-defs.h (__STDC_CONSTANT_MACROS) diff --git a/gdb/common/new-op.c b/gdb/common/new-op.c index f04c5cbbfc0..1eb4f94efeb 100644 --- a/gdb/common/new-op.c +++ b/gdb/common/new-op.c @@ -33,6 +33,12 @@ new-handler function instead (std::set_new_handler) because we want to catch allocation errors from within global constructors too. + Skip overriding if building with -fsanitize=address though. + Address sanitizer wants to override operator new/delete too in + order to detect malloc+delete and new+free mismatches. Our + versions would mask out ASan's, with the result of losing that + useful mismatch detection. + Note that C++ implementations could either have their throw versions call the nothrow versions (libstdc++), or the other way around (clang/libc++). For that reason, we replace both throw and