diff options
author | George Karpenkov <ekarpenkov@apple.com> | 2017-08-23 00:02:10 +0000 |
---|---|---|
committer | George Karpenkov <ekarpenkov@apple.com> | 2017-08-23 00:02:10 +0000 |
commit | 218ea7f69cb4f3abbbce0258e6d3171aac979a36 (patch) | |
tree | 258a6c670af08f268c6fc509a7dc9e669177c4b8 /llvm/tools | |
parent | 55bc9b3f9ebf482936661e62894102e6bacd9f7e (diff) | |
download | bcm5719-llvm-218ea7f69cb4f3abbbce0258e6d3171aac979a36.tar.gz bcm5719-llvm-218ea7f69cb4f3abbbce0258e6d3171aac979a36.zip |
Remove llvm-pdbutil/fuzzer.
The code does not compile, is not maintained, and does not have a buildbot.
Differential Revision: https://reviews.llvm.org/D37032
llvm-svn: 311512
Diffstat (limited to 'llvm/tools')
-rw-r--r-- | llvm/tools/llvm-pdbutil/CMakeLists.txt | 4 | ||||
-rw-r--r-- | llvm/tools/llvm-pdbutil/fuzzer/CMakeLists.txt | 15 | ||||
-rw-r--r-- | llvm/tools/llvm-pdbutil/fuzzer/llvm-pdbutil-fuzzer.cpp | 105 |
3 files changed, 0 insertions, 124 deletions
diff --git a/llvm/tools/llvm-pdbutil/CMakeLists.txt b/llvm/tools/llvm-pdbutil/CMakeLists.txt index bc28e6bdd7e..36ea5904530 100644 --- a/llvm/tools/llvm-pdbutil/CMakeLists.txt +++ b/llvm/tools/llvm-pdbutil/CMakeLists.txt @@ -32,7 +32,3 @@ add_llvm_tool(llvm-pdbutil StreamUtil.cpp YAMLOutputStyle.cpp ) - -if(LLVM_USE_SANITIZE_COVERAGE) - add_subdirectory(fuzzer) -endif() diff --git a/llvm/tools/llvm-pdbutil/fuzzer/CMakeLists.txt b/llvm/tools/llvm-pdbutil/fuzzer/CMakeLists.txt deleted file mode 100644 index 6af00476577..00000000000 --- a/llvm/tools/llvm-pdbutil/fuzzer/CMakeLists.txt +++ /dev/null @@ -1,15 +0,0 @@ -set(LLVM_LINK_COMPONENTS - DebugInfoCodeView - DebugInfoPDB - Object - Support - ) - -add_llvm_executable(llvm-pdbutil-fuzzer - EXCLUDE_FROM_ALL - llvm-pdbutil-fuzzer.cpp - ) - -target_link_libraries(llvm-pdbutil-fuzzer - LLVMFuzzer - ) diff --git a/llvm/tools/llvm-pdbutil/fuzzer/llvm-pdbutil-fuzzer.cpp b/llvm/tools/llvm-pdbutil/fuzzer/llvm-pdbutil-fuzzer.cpp deleted file mode 100644 index 4edb53e261f..00000000000 --- a/llvm/tools/llvm-pdbutil/fuzzer/llvm-pdbutil-fuzzer.cpp +++ /dev/null @@ -1,105 +0,0 @@ -//===-- llvm-pdbutil-fuzzer.cpp - Fuzz the llvm-pdbutil tool --------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// -/// -/// \file -/// \brief This file implements a function that runs llvm-pdbutil -/// on a single input. This function is then linked into the Fuzzer library. -/// -//===----------------------------------------------------------------------===// -#include "llvm/ADT/STLExtras.h" -#include "llvm/DebugInfo/CodeView/BinaryByteStream.h" -#include "llvm/DebugInfo/CodeView/SymbolDumper.h" -#include "llvm/DebugInfo/CodeView/TypeDumper.h" -#include "llvm/DebugInfo/PDB/Raw/DbiStream.h" -#include "llvm/DebugInfo/PDB/Raw/IPDBStreamData.h" -#include "llvm/DebugInfo/PDB/Raw/MappedBlockStream.h" -#include "llvm/DebugInfo/PDB/Raw/ModuleDebugStream.h" -#include "llvm/DebugInfo/PDB/Raw/PDBFile.h" -#include "llvm/DebugInfo/PDB/Raw/RawSession.h" -#include "llvm/Support/MemoryBuffer.h" -#include "llvm/Support/ScopedPrinter.h" - -using namespace llvm; - -namespace { -// We need a class which behaves like an immutable BinaryByteStream, but whose -// data -// is backed by an llvm::MemoryBuffer. It also needs to own the underlying -// MemoryBuffer, so this simple adapter is a good way to achieve that. -class InputByteStream : public codeview::BinaryByteStream<false> { -public: - explicit InputByteStream(std::unique_ptr<MemoryBuffer> Buffer) - : BinaryByteStream(ArrayRef<uint8_t>(Buffer->getBuffer().bytes_begin(), - Buffer->getBuffer().bytes_end())), - MemBuffer(std::move(Buffer)) {} - - std::unique_ptr<MemoryBuffer> MemBuffer; -}; -} - -extern "C" int LLVMFuzzerTestOneInput(uint8_t *data, size_t size) { - std::unique_ptr<MemoryBuffer> Buff = MemoryBuffer::getMemBuffer( - StringRef((const char *)data, size), "", false); - - ScopedPrinter P(nulls()); - codeview::CVTypeDumper TD(&P, false); - - auto InputStream = llvm::make_unique<InputByteStream>(std::move(Buff)); - std::unique_ptr<pdb::PDBFile> File(new pdb::PDBFile(std::move(InputStream))); - if (auto E = File->parseFileHeaders()) { - consumeError(std::move(E)); - return 0; - } - if (auto E = File->parseStreamData()) { - consumeError(std::move(E)); - return 0; - } - - auto DbiS = File->getPDBDbiStream(); - if (auto E = DbiS.takeError()) { - consumeError(std::move(E)); - return 0; - } - auto TpiS = File->getPDBTpiStream(); - if (auto E = TpiS.takeError()) { - consumeError(std::move(E)); - return 0; - } - auto IpiS = File->getPDBIpiStream(); - if (auto E = IpiS.takeError()) { - consumeError(std::move(E)); - return 0; - } - auto InfoS = File->getPDBInfoStream(); - if (auto E = InfoS.takeError()) { - consumeError(std::move(E)); - return 0; - } - pdb::DbiStream &DS = DbiS.get(); - - for (auto &Modi : DS.modules()) { - auto ModStreamData = pdb::MappedBlockStream::createIndexedStream( - Modi.Info.getModuleStreamIndex(), *File, File->getAllocator()); - if (!ModStreamData) { - consumeError(ModStreamData.takeError()); - return 0; - } - pdb::ModuleDebugStreamRef ModS(Modi.Info, std::move(*ModStreamData)); - if (auto E = ModS.reload()) { - consumeError(std::move(E)); - return 0; - } - codeview::CVSymbolDumper SD(P, TD, nullptr, false); - bool HadError = false; - for (auto &S : ModS.symbols(&HadError)) { - SD.dump(S); - } - } - return 0; -} |