[scudo][standalone] Potential fix for missing sized delete
authorKostya Kortchinsky <kostyak@google.com>
Wed, 3 Jul 2019 14:38:47 +0000 (14:38 +0000)
committerKostya Kortchinsky <kostyak@google.com>
Wed, 3 Jul 2019 14:38:47 +0000 (14:38 +0000)
Summary:
In some setups, using `-fsized-deallocation` would end up not finding
a sized delete operator at link time. For now, avoid using the flag
and declare the sized delete operator in the cpp test only.

This is a tentative fix as I do not have the failing setup.

Reviewers: rnk, morehouse, hctim, eugenis, vitalybuka

Reviewed By: rnk, hctim

Subscribers: mgorny, delcypher, #sanitizers, llvm-commits

Tags: #llvm, #sanitizers

Differential Revision: https://reviews.llvm.org/D64086

llvm-svn: 365045

compiler-rt/lib/scudo/standalone/tests/CMakeLists.txt
compiler-rt/lib/scudo/standalone/tests/wrappers_cpp_test.cc

index f0c259a..8a3c4cd 100644 (file)
@@ -12,7 +12,7 @@ set(SCUDO_UNITTEST_CFLAGS
   -I${COMPILER_RT_SOURCE_DIR}/lib/scudo/standalone
   -DGTEST_HAS_RTTI=0
   # Extra flags for the C++ tests
-  -fsized-deallocation
+  # TODO(kostyak): find a way to make -fsized-deallocation work
   -Wno-mismatched-new-delete)
 
 set(SCUDO_TEST_ARCH ${SCUDO_STANDALONE_SUPPORTED_ARCH})
index 8d5842a..766c13f 100644 (file)
@@ -12,6 +12,9 @@
 #include <mutex>
 #include <thread>
 
+void operator delete(void *, size_t) noexcept;
+void operator delete[](void *, size_t) noexcept;
+
 // Note that every Cxx allocation function in the test binary will be fulfilled
 // by Scudo. See the comment in the C counterpart of this file.