summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan Liew <dan@su-root.co.uk>2016-06-10 05:33:07 +0000
committerDan Liew <dan@su-root.co.uk>2016-06-10 05:33:07 +0000
commit0617f15897027b7c8d9cbb5649b47dbdd8ba6dca (patch)
tree13d70196dac119515568ba680e11ac886c53fb4a
parentfcb7e6780a6a6dc4b227d5b864e12b2e2e1e92e2 (diff)
downloadbcm5719-llvm-0617f15897027b7c8d9cbb5649b47dbdd8ba6dca.tar.gz
bcm5719-llvm-0617f15897027b7c8d9cbb5649b47dbdd8ba6dca.zip
[LibFuzzer] Fix some unit test crashes on OSX.
This fixes the following unit tests: FuzzerDictionary.ParseOneDictionaryEntry FuzzerDictionary.ParseDictionaryFile The issue appears to be mixing non-ASan-ified code (LibFuzzer) and ASan-ified code (the unittest) as the tests would pass fine if everything was built with ASan enabled. I believe the issue is that different implementations of std::vector<> are being used in LibFuzzer and outside LibFuzzer (in the unittests). For Libcxx (I've not seen the issue manifest for libstdc++) we can disable the ASanified std::vector<> by definining the ``_LIBCPP_HAS_NO_ASAN`` macro. Doing this fixes the tests on OSX. Differential Revision: http://reviews.llvm.org/D21049 llvm-svn: 272374
-rw-r--r--llvm/lib/Fuzzer/test/FuzzerUnittest.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/llvm/lib/Fuzzer/test/FuzzerUnittest.cpp b/llvm/lib/Fuzzer/test/FuzzerUnittest.cpp
index 91ac9a73c17..36d13a0346d 100644
--- a/llvm/lib/Fuzzer/test/FuzzerUnittest.cpp
+++ b/llvm/lib/Fuzzer/test/FuzzerUnittest.cpp
@@ -1,6 +1,10 @@
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
+// Avoid ODR violations (LibFuzzer is built without ASan and this test is built
+// with ASan) involving C++ standard library types when using libcxx.
+#define _LIBCPP_HAS_NO_ASAN
+
#include "FuzzerInternal.h"
#include "gtest/gtest.h"
#include <memory>
OpenPOWER on IntegriCloud