Merge "Fix 32bit -> 64bit signed sign extension with thread IDs." into studio-master-dev
diff --git a/cc/gapic/android/thread.cpp b/cc/gapic/android/thread.cpp
index ed3d4a9..3b24003 100644
--- a/cc/gapic/android/thread.cpp
+++ b/cc/gapic/android/thread.cpp
@@ -18,11 +18,14 @@
 
 #include <pthread.h>
 
+#include <type_traits>
+
 namespace gapic {
 
 Thread Thread::current() {
     auto thread = pthread_self();
-    return Thread(static_cast<uint64_t>(thread));
+    auto asUnsigned = static_cast<std::make_unsigned<decltype(thread)>::type>(thread);
+    return Thread(static_cast<uint64_t>(asUnsigned));
 }
 
 } // namespace gapic