aboutsummaryrefslogtreecommitdiff
path: root/llvm/tools
diff options
context:
space:
mode:
authorZachary Turner <zturner@google.com>2016-06-09 00:21:37 +0000
committerZachary Turner <zturner@google.com>2016-06-09 00:21:37 +0000
commit36eb047792aaa77a11d710e1ee4f2e9930464925 (patch)
tree075a3c8ce452cd7d96e94242f0561479626a1279 /llvm/tools
parentc41cd6dcf7a01fdeb0a7a1bce74baffc3a813b73 (diff)
downloadllvm-36eb047792aaa77a11d710e1ee4f2e9930464925.zip
llvm-36eb047792aaa77a11d710e1ee4f2e9930464925.tar.gz
llvm-36eb047792aaa77a11d710e1ee4f2e9930464925.tar.bz2
[pdbdump-fuzzer] Try to fix build errors in fuzzer.
llvm-svn: 272230
Diffstat (limited to 'llvm/tools')
-rw-r--r--llvm/tools/llvm-pdbdump/fuzzer/llvm-pdbdump-fuzzer.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/llvm/tools/llvm-pdbdump/fuzzer/llvm-pdbdump-fuzzer.cpp b/llvm/tools/llvm-pdbdump/fuzzer/llvm-pdbdump-fuzzer.cpp
index a0e1436..988f47d 100644
--- a/llvm/tools/llvm-pdbdump/fuzzer/llvm-pdbdump-fuzzer.cpp
+++ b/llvm/tools/llvm-pdbdump/fuzzer/llvm-pdbdump-fuzzer.cpp
@@ -15,6 +15,8 @@
#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/ModStream.h"
#include "llvm/DebugInfo/PDB/Raw/PDBFile.h"
#include "llvm/DebugInfo/PDB/Raw/RawSession.h"
@@ -63,7 +65,13 @@ extern "C" int LLVMFuzzerTestOneInput(uint8_t *data, size_t size) {
pdb::DbiStream &DS = DbiS.get();
for (auto &Modi : DS.modules()) {
- pdb::ModStream ModS(*File, Modi.Info);
+ auto ModStreamData = pdb::MappedBlockStream::createIndexedStream(
+ Modi.Info.getModuleStreamIndex(), *File);
+ if (!ModStreamData) {
+ consumeError(ModStreamData.takeError());
+ return 0;
+ }
+ pdb::ModStream ModS(Modi.Info, std::move(*ModStreamData));
if (auto E = ModS.reload()) {
consumeError(std::move(E));
return 0;