Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / compiler-rt / test / fuzzer / TraceMallocThreadedTest.cpp
blob6b8bb7c2efce72bcc2799be156e897c7ecbb0673
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 // Check that allocation tracing from different threads does not cause
6 // interleaving of stack traces.
7 #include <assert.h>
8 #include <cstddef>
9 #include <cstdint>
10 #include <cstring>
11 #include <cstdlib>
12 #include <thread>
14 extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) {
15 auto C = [&] {
16 void * volatile a = malloc(5639);
17 free((void *)a);
19 std::thread T[] = {std::thread(C), std::thread(C), std::thread(C),
20 std::thread(C), std::thread(C), std::thread(C)};
21 for (auto &X : T)
22 X.join();
23 return 0;