bplist: Suppress compiler warnings with proper casts
diff --git a/src/bplist.c b/src/bplist.c
index 8e0dcd1..fe80458 100644
--- a/src/bplist.c
+++ b/src/bplist.c
@@ -183,7 +183,7 @@
 #endif
 
 #if __has_builtin(__builtin_umulll_overflow) || __GNUC__ >= 5
-#define uint64_mul_overflow(a, b, r) __builtin_umulll_overflow(a, b, r)
+#define uint64_mul_overflow(a, b, r) __builtin_umulll_overflow(a, b, (unsigned long long*)r)
 #else
 static int uint64_mul_overflow(uint64_t a, uint64_t b, uint64_t *res)
 {
@@ -575,7 +575,7 @@
     uint16_t type = 0;
     uint64_t size = 0;
     uint64_t pobject = 0;
-    uint64_t poffset_table = (uint64_t)bplist->offset_table;
+    uint64_t poffset_table = (uint64_t)(uintptr_t)bplist->offset_table;
 
     if (!object)
         return NULL;
@@ -613,7 +613,7 @@
         }
     }
 
-    pobject = (uint64_t)*object;
+    pobject = (uint64_t)(uintptr_t)*object;
 
     switch (type)
     {