diff --git a/externals/microprofile/microprofile.h b/externals/microprofile/microprofile.h index cf16661f8..2a9185223 100644 --- a/externals/microprofile/microprofile.h +++ b/externals/microprofile/microprofile.h @@ -927,7 +927,11 @@ typedef HANDLE MicroProfileThread; DWORD _stdcall ThreadTrampoline(void* pFunc) { MicroProfileThreadFunc F = (MicroProfileThreadFunc)pFunc; - return (uint32_t)F(0); + + // The return value of F will always return a void*, however, this is for + // compatibility with pthreads. The underlying "address" of the pointer + // is always a 32-bit value, so this cast is safe to perform. + return static_cast(reinterpret_cast(F(0))); } void MicroProfileThreadStart(MicroProfileThread* pThread, MicroProfileThreadFunc Func)