diff options
author | Dan Liew <dan@su-root.co.uk> | 2016-06-10 05:33:07 +0000 |
---|---|---|
committer | Dan Liew <dan@su-root.co.uk> | 2016-06-10 05:33:07 +0000 |
commit | 0617f15897027b7c8d9cbb5649b47dbdd8ba6dca (patch) | |
tree | 13d70196dac119515568ba680e11ac886c53fb4a | |
parent | fcb7e6780a6a6dc4b227d5b864e12b2e2e1e92e2 (diff) | |
download | bcm5719-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.cpp | 4 |
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> |