diff --git a/compiler-rt/lib/fuzzer/FuzzerUtilWindows.cpp b/compiler-rt/lib/fuzzer/FuzzerUtilWindows.cpp index 71770166805f7..71cdeeba414be 100644 --- a/compiler-rt/lib/fuzzer/FuzzerUtilWindows.cpp +++ b/compiler-rt/lib/fuzzer/FuzzerUtilWindows.cpp @@ -234,8 +234,14 @@ size_t PageSize() { } void SetThreadName(std::thread &thread, const std::string &name) { - // TODO ? - // to UTF-8 then SetThreadDescription ? + auto sz = + MultiByteToWideChar(CP_UTF8, 0, name.data(), name.size(), nullptr, 0); + std::wstring wname(sz); + if (sz == MultiByteToWideChar(CP_UTF8, 0, name.data(), name.size(), &wname[0], + sz) > 0) { + wname.resize(sz - 1); + (void)SetThreadDescription(thread.native_handle(), wname.c_str()); + } } } // namespace fuzzer