Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / compiler-rt / test / fuzzer / ThreadedTest.cpp
blob716eace4bc9a358967fbdbc33a0b4287b3424d0c
1 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
2 // See https://llvm.org/LICENSE.txt for license information.
3 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
5 // Threaded test for a fuzzer. The fuzzer should not crash.
6 #include <assert.h>
7 #include <cstddef>
8 #include <cstdint>
9 #include <cstring>
10 #include <thread>
12 extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) {
13 if (Size < 8) return 0;
14 assert(Data);
15 auto C = [&] {
16 size_t Res = 0;
17 for (size_t i = 0; i < Size / 2; i++)
18 Res += memcmp(Data, Data + Size / 2, 4);
19 return Res;
21 std::thread T[] = {std::thread(C), std::thread(C), std::thread(C),
22 std::thread(C), std::thread(C), std::thread(C)};
23 for (auto &X : T)
24 X.join();
25 return 0;