diff options
author | Hans Wennborg <hans@hanshq.net> | 2017-10-12 03:32:09 +0000 |
---|---|---|
committer | Hans Wennborg <hans@hanshq.net> | 2017-10-12 03:32:09 +0000 |
commit | 022829d84c2c4e992980bf99695bea4be5c31ef1 (patch) | |
tree | 62f0d11bda91bc4d01cf4ce0339f479d96b6a29f /llvm/lib | |
parent | eb2218ceaed31e71680a0646bf8e4533411a0497 (diff) | |
download | bcm5719-llvm-022829d84c2c4e992980bf99695bea4be5c31ef1.tar.gz bcm5719-llvm-022829d84c2c4e992980bf99695bea4be5c31ef1.zip |
Revert r315545 "llvm-isel-fuzzer: Handle a subset of backend flags in the executable name"
It broke some tests on Windows:
Failing Tests (4):
LLVM :: tools/llvm-isel-fuzzer/execname-options.ll
LLVM :: tools/llvm-isel-fuzzer/missing-triple.ll
LLVM :: tools/llvm-isel-fuzzer/x86-empty-bc.ll
LLVM :: tools/llvm-isel-fuzzer/x86-empty.ll
> llvm-isel-fuzzer: Handle a subset of backend flags in the executable name
>
> Here we add a secondary option parser to llvm-isel-fuzzer (and provide
> it for use with other fuzzers). With this, you can copy the fuzzer to
> a name like llvm-isel-fuzzer:aarch64-gisel for a fuzzer that fuzzer
> AArch64 with GlobalISel enabled, or fuzzer:x86_64 to fuzz x86, with no
> flags required. This should be useful for running these in OSS-Fuzz.
>
> Note that this handrolls a subset of cl::opts to recognize, rather
> than embedding a complete command parser for argv[0]. If we find we
> really need the flexibility of handling arbitrary options at some
> point we can rethink this.
llvm-svn: 315554
Diffstat (limited to 'llvm/lib')
-rw-r--r-- | llvm/lib/FuzzMutate/FuzzerCLI.cpp | 38 |
1 files changed, 1 insertions, 37 deletions
diff --git a/llvm/lib/FuzzMutate/FuzzerCLI.cpp b/llvm/lib/FuzzMutate/FuzzerCLI.cpp index 144f1f579ea..3b71cde5af7 100644 --- a/llvm/lib/FuzzMutate/FuzzerCLI.cpp +++ b/llvm/lib/FuzzMutate/FuzzerCLI.cpp @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// #include "llvm/FuzzMutate/FuzzerCLI.h" -#include "llvm/ADT/Triple.h" +#include "llvm/ADT/StringRef.h" #include "llvm/Support/CommandLine.h" #include "llvm/Support/Compiler.h" #include "llvm/Support/Error.h" @@ -31,42 +31,6 @@ void llvm::parseFuzzerCLOpts(int ArgC, char *ArgV[]) { cl::ParseCommandLineOptions(CLArgs.size(), CLArgs.data()); } -void llvm::handleExecNameEncodedBEOpts(StringRef ExecName) { - std::vector<std::string> Args{ExecName}; - - auto NameAndArgs = ExecName.split(':'); - if (NameAndArgs.second.empty()) - return; - - SmallVector<StringRef, 4> Opts; - NameAndArgs.second.split(Opts, '-'); - for (StringRef Opt : Opts) { - if (Opt.equals("gisel")) { - Args.push_back("-global-isel"); - // For now we default GlobalISel to -O0 - Args.push_back("-O0"); - } else if (Opt.startswith("O")) { - Args.push_back("-" + Opt.str()); - } else if (auto Arch = Triple::getArchTypeForLLVMName(Opt)) { - Args.push_back("-mtriple=" + Opt.str()); - } else { - errs() << ExecName << ": Unknown option: " << Opt << ".\n"; - exit(1); - } - } - errs() << NameAndArgs.first << ": Injected args:"; - for (int I = 1, E = Args.size(); I < E; ++I) - errs() << " " << Args[I]; - errs() << "\n"; - - std::vector<const char *> CLArgs; - CLArgs.reserve(Args.size()); - for (std::string &S : Args) - CLArgs.push_back(S.c_str()); - - cl::ParseCommandLineOptions(CLArgs.size(), CLArgs.data()); -} - int llvm::runFuzzerOnInputs(int ArgC, char *ArgV[], FuzzerTestFun TestOne, FuzzerInitFun Init) { errs() << "*** This tool was not linked to libFuzzer.\n" |