--- llvm-project/compiler-rt/lib/fuzzer/FuzzerDriver.cpp.orig 2019-02-13 14:24:24.239239031 -0600 +++ llvm-project/compiler-rt/lib/fuzzer/FuzzerDriver.cpp 2019-02-13 14:28:18.525530281 -0600 @@ -248,13 +248,16 @@ Command Cmd(Args); Cmd.removeFlag("jobs"); Cmd.removeFlag("workers"); - Vector V; + Vector> V; std::thread Pulse(PulseThread); Pulse.detach(); - for (unsigned i = 0; i < NumWorkers; i++) - V.push_back(std::thread(WorkerThread, std::ref(Cmd), &Counter, NumJobs, &HasErrors)); + for (unsigned i = 0; i < NumWorkers; i++) { + std::shared_ptr wt(new std::thread(WorkerThread, std::ref(Cmd), &Counter, NumJobs, &HasErrors)); + V.push_back(wt); + } for (auto &T : V) - T.join(); + T->join(); + Vector>().swap(V); return HasErrors ? 1 : 0; }