aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
authorPedro Alves <palves@redhat.com>2016-10-25 13:32:26 +0100
committerPedro Alves <palves@redhat.com>2016-10-25 13:32:26 +0100
commite4426cb42f082b0dc1298a173014f18ff0ff7ea7 (patch)
tree8ddb30d4cc73509445877dd403a974fdffaca5ed /gdb
parent28fe4f87e0b815f4c0d9b80e0a9f3e6a53c649b3 (diff)
downloadgdb-e4426cb42f082b0dc1298a173014f18ff0ff7ea7.zip
gdb-e4426cb42f082b0dc1298a173014f18ff0ff7ea7.tar.gz
gdb-e4426cb42f082b0dc1298a173014f18ff0ff7ea7.tar.bz2
new-op.c: Add comment about -fsanitize=address
gdb/ChangeLog: 2016-10-25 Pedro Alves <palves@redhat.com> * common/new-op.c: Add comment about -fsanitize=address.
Diffstat (limited to 'gdb')
-rw-r--r--gdb/ChangeLog4
-rw-r--r--gdb/common/new-op.c6
2 files changed, 10 insertions, 0 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 40fab9b..c2a8579 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,9 @@
2016-10-25 Pedro Alves <palves@redhat.com>
+ * common/new-op.c: Add comment about -fsanitize=address.
+
+2016-10-25 Pedro Alves <palves@redhat.com>
+
* common/common-defs.h (__STDC_CONSTANT_MACROS)
(__STDC_LIMIT_MACROS): Define.
diff --git a/gdb/common/new-op.c b/gdb/common/new-op.c
index f04c5cb..1eb4f94 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