From ee21b5378ba87dafc6e4d84a19a94b53e71aeee2 Mon Sep 17 00:00:00 2001
From: Lioncash <mathew1800@gmail.com>
Date: Tue, 3 Nov 2020 15:07:08 -0500
Subject: [PATCH] microprofile: Silence warning in headers

Silences a truncation warning by making the truncation explicit and
documenting the reason for it.
---
 externals/microprofile/microprofile.h | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/externals/microprofile/microprofile.h b/externals/microprofile/microprofile.h
index 5c381f0025..a06f6457d2 100644
--- a/externals/microprofile/microprofile.h
+++ b/externals/microprofile/microprofile.h
@@ -948,7 +948,11 @@ typedef HANDLE MicroProfileThread;
 DWORD _stdcall ThreadTrampoline(void* pFunc)
 {
     MicroProfileThreadFunc F = (MicroProfileThreadFunc)pFunc;
-    return (DWORD)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<DWORD>(reinterpret_cast<uint64_t>(F(0)));
 }
 
 inline void MicroProfileThreadStart(MicroProfileThread* pThread, MicroProfileThreadFunc Func)