Fix some warnings from MSVC
diff --git a/Modules/_ctypes/_ctypes.c b/Modules/_ctypes/_ctypes.c
index 98433e1..f840729 100644
--- a/Modules/_ctypes/_ctypes.c
+++ b/Modules/_ctypes/_ctypes.c
@@ -3067,7 +3067,7 @@
 };
 
 #ifdef MS_WIN32
-static PPROC FindAddress(void *handle, char *name, PyObject *type)
+static PPROC FindAddress(void *handle, const char *name, PyObject *type)
 {
 #ifdef MS_WIN64
     /* win64 has no stdcall calling conv, so it should
diff --git a/Modules/_decimal/libmpdec/vccompat.h b/Modules/_decimal/libmpdec/vccompat.h
index 564eaa8..dd131d8 100644
--- a/Modules/_decimal/libmpdec/vccompat.h
+++ b/Modules/_decimal/libmpdec/vccompat.h
@@ -48,10 +48,6 @@
   #undef strtoll
   #define strtoll _strtoi64
   #define strdup _strdup
-  #define PRIi64 "I64i"
-  #define PRIu64 "I64u"
-  #define PRIi32 "I32i"
-  #define PRIu32 "I32u"
 #endif
 
 
diff --git a/Modules/audioop.c b/Modules/audioop.c
index c11506c..d715783 100644
--- a/Modules/audioop.c
+++ b/Modules/audioop.c
@@ -4,6 +4,7 @@
 #define PY_SSIZE_T_CLEAN
 
 #include "Python.h"
+#include <inttypes.h>
 
 typedef short PyInt16;
 
@@ -448,7 +449,7 @@
         int val = GETRAWSAMPLE(width, fragment->buf, i);
         /* Cast to unsigned before negating. Unsigned overflow is well-
         defined, but signed overflow is not. */
-        if (val < 0) absval = -(unsigned int)val;
+        if (val < 0) absval = (unsigned int)-(int64_t)val;
         else absval = val;
         if (absval > max) max = absval;
     }
diff --git a/Programs/_freeze_importlib.c b/Programs/_freeze_importlib.c
index 0793984..1069966 100644
--- a/Programs/_freeze_importlib.c
+++ b/Programs/_freeze_importlib.c
@@ -58,7 +58,7 @@
         fprintf(stderr, "cannot fstat '%s'\n", inpath);
         goto error;
     }
-    text_size = status.st_size;
+    text_size = (size_t)status.st_size;
     text = (char *) malloc(text_size + 1);
     if (text == NULL) {
         fprintf(stderr, "could not allocate %ld bytes\n", (long) text_size);