summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-isel-fuzzer
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/tools/llvm-isel-fuzzer')
-rw-r--r--llvm/tools/llvm-isel-fuzzer/DummyISelFuzzer.cpp38
-rw-r--r--llvm/tools/llvm-isel-fuzzer/llvm-isel-fuzzer.cpp18
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";
OpenPOWER on IntegriCloud