The `check-fuzzer` runs fine with cl build llvm, but the following lit tests fail with clang-cl build llvm ``` ******************** Timed Out Tests (2): libFuzzer-x86_64-default-Windows :: fork-ubsan.test libFuzzer-x86_64-default-Windows :: fuzzer-oom.test ******************** Failed Tests (22): libFuzzer-x86_64-default-Windows :: acquire-crash-state.test libFuzzer-x86_64-default-Windows :: cross_over_copy.test libFuzzer-x86_64-default-Windows :: cross_over_insert.test libFuzzer-x86_64-default-Windows :: exit_on_src_pos.test libFuzzer-x86_64-default-Windows :: fuzzer-alignment-assumption.test libFuzzer-x86_64-default-Windows :: fuzzer-implicit-integer-sign-change.test libFuzzer-x86_64-default-Windows :: fuzzer-implicit-signed-integer-truncation-or-sign-change.test libFuzzer-x86_64-default-Windows :: fuzzer-implicit-signed-integer-truncation.test libFuzzer-x86_64-default-Windows :: fuzzer-implicit-unsigned-integer-truncation.test libFuzzer-x86_64-default-Windows :: fuzzer-printcovpcs.test libFuzzer-x86_64-default-Windows :: fuzzer-timeout.test libFuzzer-x86_64-default-Windows :: fuzzer-ubsan.test libFuzzer-x86_64-default-Windows :: minimize_crash.test libFuzzer-x86_64-default-Windows :: minimize_two_crashes.test libFuzzer-x86_64-default-Windows :: null-deref-on-empty.test libFuzzer-x86_64-default-Windows :: null-deref.test libFuzzer-x86_64-default-Windows :: print-func.test libFuzzer-x86_64-default-Windows :: stack-overflow-with-asan.test libFuzzer-x86_64-default-Windows :: trace-malloc-2.test libFuzzer-x86_64-default-Windows :: trace-malloc-unbalanced.test libFuzzer-x86_64-default-Windows :: trace-malloc.test ``` The related commits are53a81d4d26ande31efd8f6f. Following the change ine31efd8f6fcan fix these failures. As for the issue mentioned in the comment that alternatename support in clang not good enough(https://bugs.llvm.org/show_bug.cgi?id=40218). I find that using `__builtin_function_start(func)` instead of directly using `func` would make it work as intended.
See http://llvm.org/docs/LibFuzzer.html