diff options
Diffstat (limited to 'llvm/tools/llvm-isel-fuzzer')
-rw-r--r-- | llvm/tools/llvm-isel-fuzzer/DummyISelFuzzer.cpp | 38 | ||||
-rw-r--r-- | llvm/tools/llvm-isel-fuzzer/llvm-isel-fuzzer.cpp | 18 |
2 files changed, 5 insertions, 51 deletions
diff --git a/llvm/tools/llvm-isel-fuzzer/DummyISelFuzzer.cpp b/llvm/tools/llvm-isel-fuzzer/DummyISelFuzzer.cpp index 89c1c81cdbe..ec9c74e3040 100644 --- a/llvm/tools/llvm-isel-fuzzer/DummyISelFuzzer.cpp +++ b/llvm/tools/llvm-isel-fuzzer/DummyISelFuzzer.cpp @@ -11,43 +11,11 @@ // //===----------------------------------------------------------------------===// -#include "llvm/ADT/StringRef.h" -#include "llvm/Support/Compiler.h" -#include "llvm/Support/Error.h" -#include "llvm/Support/MemoryBuffer.h" -#include "llvm/Support/raw_ostream.h" - -using namespace llvm; +#include "llvm/FuzzMutate/FuzzerCLI.h" extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size); extern "C" int LLVMFuzzerInitialize(int *argc, char ***argv); - int main(int argc, char *argv[]) { - errs() << "*** This tool was not linked to libFuzzer.\n" - << "*** No fuzzing will be performed.\n"; - if (int RC = LLVMFuzzerInitialize(&argc, &argv)) { - errs() << "Initialization failed\n"; - return RC; - } - - for (int I = 1; I < argc; ++I) { - StringRef Arg(argv[I]); - if (Arg.startswith("-")) { - if (Arg.equals("-ignore_remaining_args=1")) - break; - continue; - } - - auto BufOrErr = MemoryBuffer::getFile(Arg, /*FileSize-*/ -1, - /*RequiresNullTerminator=*/false); - if (std::error_code EC = BufOrErr.getError()) { - errs() << "Error reading file: " << Arg << ": " << EC.message() << "\n"; - return 1; - } - std::unique_ptr<MemoryBuffer> Buf = std::move(BufOrErr.get()); - errs() << "Running: " << Arg << " (" << Buf->getBufferSize() << " bytes)\n"; - LLVMFuzzerTestOneInput( - reinterpret_cast<const uint8_t *>(Buf->getBufferStart()), - Buf->getBufferSize()); - } + return llvm::runFuzzerOnInputs(argc, argv, LLVMFuzzerTestOneInput, + LLVMFuzzerInitialize); } diff --git a/llvm/tools/llvm-isel-fuzzer/llvm-isel-fuzzer.cpp b/llvm/tools/llvm-isel-fuzzer/llvm-isel-fuzzer.cpp index 1d16376bb87..314acdb5087 100644 --- a/llvm/tools/llvm-isel-fuzzer/llvm-isel-fuzzer.cpp +++ b/llvm/tools/llvm-isel-fuzzer/llvm-isel-fuzzer.cpp @@ -16,6 +16,7 @@ #include "llvm/Bitcode/BitcodeReader.h" #include "llvm/Bitcode/BitcodeWriter.h" #include "llvm/CodeGen/CommandFlags.h" +#include "llvm/FuzzMutate/FuzzerCLI.h" #include "llvm/FuzzMutate/IRMutator.h" #include "llvm/FuzzMutate/Operations.h" #include "llvm/FuzzMutate/Random.h" @@ -133,21 +134,6 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) { return 0; } -/// Parse command line options, but ignore anything before '--'. -static void parseCLOptsAfterDashDash(int argc, char *argv[]) { - std::vector<const char *> CLArgs; - CLArgs.push_back(argv[0]); - - int I = 1; - while (I < argc) - if (StringRef(argv[I++]).equals("-ignore_remaining_args=1")) - break; - while (I < argc) - CLArgs.push_back(argv[I++]); - - cl::ParseCommandLineOptions(CLArgs.size(), CLArgs.data()); -} - static void handleLLVMFatalError(void *, const std::string &Message, bool) { // TODO: Would it be better to call into the fuzzer internals directly? dbgs() << "LLVM ERROR: " << Message << "\n" @@ -164,7 +150,7 @@ extern "C" LLVM_ATTRIBUTE_USED int LLVMFuzzerInitialize(int *argc, InitializeAllAsmPrinters(); InitializeAllAsmParsers(); - parseCLOptsAfterDashDash(*argc, *argv); + parseFuzzerCLOpts(*argc, *argv); if (TargetTriple.empty()) { errs() << *argv[0] << ": -mtriple must be specified\n"; |