[PATCH] D51008: Enable -fsanitize=fuzzer and -fsanitize=fuzzer-no-link on Windows.

Jonathan Metzman via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Mon Aug 20 17:50:34 PDT 2018


metzman added inline comments.


================
Comment at: lib/Driver/ToolChains/MSVC.cpp:373
+                             TC.getCompilerRTArgString(Args, "fuzzer", false)));
+    CmdArgs.push_back(Args.MakeArgString("-debug"));
+    // Prevent the linker from padding sections we use for instrumentation
----------------
morehouse wrote:
> Why is `-debug` needed?
Without it, libFuzzer quits early with the following error message:
```
ERROR: no interesting inputs were found. Is the code instrumented for coverage? Exiting.
```
I think it's because `sancov.module_ctor` isn't executed (or it isn't calling the init functions in libFuzzer), but I'm not 100% sure about this (or why this is the case).

I guess `-debug` isn't strictly necessary because I don't have libFuzzer working perfectly without ASAN yet (I always get warnings from libFuzzer about `__sanitizer_print_stack_trace`, `__sanitizer_acquire_crash_state`, and `__sanitizer_set_death_callback` being missing) and ASAN includes this argument (as well as `-incremental:no`,  removing this line doesn't break anything as long as we always compile with ASAN).
Do you think I should remove these two arguments?

I was planning on tracking down why exactly this occurs later on, but I'm fine doing this now.


Repository:
  rC Clang

https://reviews.llvm.org/D51008





More information about the cfe-commits mailing list