diff options
Diffstat (limited to 'lib/fuzzer/FuzzerDriver.cpp')
| -rw-r--r-- | lib/fuzzer/FuzzerDriver.cpp | 19 | 
1 files changed, 15 insertions, 4 deletions
diff --git a/lib/fuzzer/FuzzerDriver.cpp b/lib/fuzzer/FuzzerDriver.cpp index f6b642daeda75..783474a39e166 100644 --- a/lib/fuzzer/FuzzerDriver.cpp +++ b/lib/fuzzer/FuzzerDriver.cpp @@ -537,6 +537,8 @@ int FuzzerDriver(int *argc, char ***argv, UserCallback Callback) {    EF = new ExternalFunctions();    if (EF->LLVMFuzzerInitialize)      EF->LLVMFuzzerInitialize(argc, argv); +  if (EF->__msan_scoped_disable_interceptor_checks) +    EF->__msan_scoped_disable_interceptor_checks();    const Vector<std::string> Args(*argv, *argv + *argc);    assert(!Args.empty());    ProgName = new std::string(Args[0]); @@ -567,7 +569,7 @@ int FuzzerDriver(int *argc, char ***argv, UserCallback Callback) {    FuzzingOptions Options;    Options.Verbosity = Flags.verbosity;    Options.MaxLen = Flags.max_len; -  Options.ExperimentalLenControl = Flags.experimental_len_control; +  Options.LenControl = Flags.len_control;    Options.UnitTimeoutSec = Flags.timeout;    Options.ErrorExitCode = Flags.error_exitcode;    Options.TimeoutExitCode = Flags.timeout_exitcode; @@ -613,15 +615,22 @@ int FuzzerDriver(int *argc, char ***argv, UserCallback Callback) {    Options.PrintNewCovPcs = Flags.print_pcs;    Options.PrintNewCovFuncs = Flags.print_funcs;    Options.PrintFinalStats = Flags.print_final_stats; +  Options.PrintMutationStats = Flags.print_mutation_stats;    Options.PrintCorpusStats = Flags.print_corpus_stats;    Options.PrintCoverage = Flags.print_coverage; +  Options.PrintUnstableStats = Flags.print_unstable_stats; +  if (Flags.handle_unstable == TracePC::MinUnstable || +      Flags.handle_unstable == TracePC::ZeroUnstable) +    Options.HandleUnstable = Flags.handle_unstable;    Options.DumpCoverage = Flags.dump_coverage; -  Options.UseClangCoverage = Flags.use_clang_coverage; -  Options.UseFeatureFrequency = Flags.use_feature_frequency;    if (Flags.exit_on_src_pos)      Options.ExitOnSrcPos = Flags.exit_on_src_pos;    if (Flags.exit_on_item)      Options.ExitOnItem = Flags.exit_on_item; +  if (Flags.focus_function) +    Options.FocusFunction = Flags.focus_function; +  if (Flags.data_flow_trace) +    Options.DataFlowTrace = Flags.data_flow_trace;    unsigned Seed = Flags.seed;    // Initialize Seed. @@ -665,6 +674,7 @@ int FuzzerDriver(int *argc, char ***argv, UserCallback Callback) {    if (Flags.cleanse_crash)      return CleanseCrashInput(Args, Options); +#if 0  // deprecated, to be removed.    if (auto Name = Flags.run_equivalence_server) {      SMR.Destroy(Name);      if (!SMR.Create(Name)) { @@ -690,6 +700,7 @@ int FuzzerDriver(int *argc, char ***argv, UserCallback Callback) {      }      Printf("INFO: EQUIVALENCE CLIENT UP\n");    } +#endif    if (DoPlainRun) {      Options.SaveArtifacts = false; @@ -747,7 +758,7 @@ int FuzzerDriver(int *argc, char ***argv, UserCallback Callback) {        Printf("Dictionary analysis failed\n");        exit(1);      } -    Printf("Dictionary analysis suceeded\n"); +    Printf("Dictionary analysis succeeded\n");      exit(0);    }  | 
