summaryrefslogtreecommitdiff
path: root/src/libc_override_gcc_and_weak.h
diff options
context:
space:
mode:
authorAliaksey Kandratsenka <alkondratenko@gmail.com>2016-03-05 15:47:25 -0800
committerAliaksey Kandratsenka <alkondratenko@gmail.com>2016-03-05 17:12:04 -0800
commit782165fa7f2c49d6a67c2415626a1f215cc21ac2 (patch)
tree1897aa611f302402ea76a27b8b857ce8a257c705 /src/libc_override_gcc_and_weak.h
parent06811b3ae4c5365880898148d188ae91d20f52f2 (diff)
downloadgperftools-782165fa7f2c49d6a67c2415626a1f215cc21ac2.tar.gz
build sized delete aliases even when sized-delete is disabled
In this case we alias to regular delete. This is helpful because if we don't override sized delete, then apps will call version in libstdc++ which delegates calls to regular delete, which is slower than calling regular delete directly.
Diffstat (limited to 'src/libc_override_gcc_and_weak.h')
-rw-r--r--src/libc_override_gcc_and_weak.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/libc_override_gcc_and_weak.h b/src/libc_override_gcc_and_weak.h
index ae981c4..ecb66ec 100644
--- a/src/libc_override_gcc_and_weak.h
+++ b/src/libc_override_gcc_and_weak.h
@@ -127,6 +127,13 @@ void operator delete(void *p, size_t size) throw()
void operator delete[](void *p, size_t size) throw()
__attribute__((ifunc("resolve_deletearray_sized")));
+#else /* !ENABLE_SIZED_DELETE && !ENABLE_DYN_SIZED_DELETE */
+
+void operator delete(void *p, size_t size) throw()
+ ALIAS(tc_delete);
+void operator delete[](void *p, size_t size) throw()
+ ALIAS(tc_deletearray);
+
#endif /* !ENABLE_SIZED_DELETE && !ENABLE_DYN_SIZED_DELETE */
extern "C" {