]> granicus.if.org Git - python/commitdiff
Fix some warnings produced by different compilers. (GH-5593) (GH-5600)
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Fri, 9 Feb 2018 15:56:34 +0000 (07:56 -0800)
committerSerhiy Storchaka <storchaka@gmail.com>
Fri, 9 Feb 2018 15:56:34 +0000 (17:56 +0200)
(cherry picked from commit bfe4fd5f2e96e72eecb5b8a0c7df0ac1689f3b7e)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
Modules/_decimal/libmpdec/mpdecimal.c
Modules/socketmodule.c
Modules/timemodule.c
Python/context.c
Python/hamt.c
Python/pyhash.c

index 328ab9224628a4bc70efb03cd3ef80edbfcfd73d..bfa8bb343e60c1db28c2f11fa07baa7c8d20d796 100644 (file)
 #endif
 
 
+/* Disable warning that is part of -Wextra since gcc 7.0. */
+#if defined(__GNUC__) && !defined(__INTEL_COMPILER) && __GNUC__ >= 7
+  #pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#endif
+
+
 #if defined(_MSC_VER)
   #define ALWAYS_INLINE __forceinline
 #elif defined(LEGACY_COMPILER)
index 474c1c94a0c87a0329299ade1276a7cf5b7cb922..7fc3d877bba5349047e5050f531410cf03a5aee4 100644 (file)
@@ -4867,7 +4867,9 @@ sock_initobj(PyObject *self, PyObject *args, PyObject *kwds)
             if (type == -1) {
                 int tmp;
                 socklen_t slen = sizeof(tmp);
-                if (getsockopt(fd, SOL_SOCKET, SO_TYPE, &tmp, &slen) == 0) {
+                if (getsockopt(fd, SOL_SOCKET, SO_TYPE,
+                               (void *)&tmp, &slen) == 0)
+                {
                     type = tmp;
                 } else {
 #ifdef MS_WINDOWS
@@ -4885,7 +4887,9 @@ sock_initobj(PyObject *self, PyObject *args, PyObject *kwds)
             if (proto == -1) {
                 int tmp;
                 socklen_t slen = sizeof(tmp);
-                if (getsockopt(fd, SOL_SOCKET, SO_PROTOCOL, &tmp, &slen) == 0) {
+                if (getsockopt(fd, SOL_SOCKET, SO_PROTOCOL,
+                               (void *)&tmp, &slen) == 0)
+                {
                     proto = tmp;
                 } else {
 #ifdef MS_WINDOWS
index b17ab5ae824ba47e46141191f31172deccfe1354..998216cc8fdbdf54f3044d8b287be0f99825bb46 100644 (file)
@@ -1192,11 +1192,13 @@ _PyTime_GetProcessTimeWithInfo(_PyTime_t *tp, _Py_clock_info_t *info)
             if (freq != -1) {
                 /* check that _PyTime_MulDiv(t, SEC_TO_NS, ticks_per_second)
                    cannot overflow below */
+#if LONG_MAX > _PyTime_MAX / SEC_TO_NS
                 if ((_PyTime_t)freq > _PyTime_MAX / SEC_TO_NS) {
                     PyErr_SetString(PyExc_OverflowError,
                                     "_SC_CLK_TCK is too large");
                     return -1;
                 }
+#endif
 
                 ticks_per_second = freq;
             }
index 2034a204121501f73425c8a95520eb6a753e7f27..b727748ee73987b001ca61bb359e6610610f7bb5 100644 (file)
@@ -8,7 +8,7 @@
 
 #define CONTEXT_FREELIST_MAXLEN 255
 static PyContext *ctx_freelist = NULL;
-static Py_ssize_t ctx_freelist_len = 0;
+static int ctx_freelist_len = 0;
 
 
 #include "clinic/context.c.h"
@@ -1177,7 +1177,7 @@ get_token_missing(void)
 int
 PyContext_ClearFreeList(void)
 {
-    Py_ssize_t size = ctx_freelist_len;
+    int size = ctx_freelist_len;
     while (ctx_freelist_len) {
         PyContext *ctx = ctx_freelist;
         ctx_freelist = (PyContext *)ctx->ctx_weakreflist;
index c9acbbcc5acc3ca2eddce0edcbffd26e8171132b..e54d3a4c55f912d04593231d7322de57bedd5c7a 100644 (file)
@@ -729,7 +729,7 @@ hamt_node_bitmap_assoc(PyHamtNode_Bitmap *self,
         uint32_t key_idx = 2 * idx;
         uint32_t val_idx = key_idx + 1;
 
-        assert(val_idx < Py_SIZE(self));
+        assert(val_idx < (size_t)Py_SIZE(self));
 
         PyObject *key_or_null = self->b_array[key_idx];
         PyObject *val_or_node = self->b_array[val_idx];
@@ -1123,7 +1123,7 @@ hamt_node_bitmap_find(PyHamtNode_Bitmap *self,
     key_idx = idx * 2;
     val_idx = key_idx + 1;
 
-    assert(val_idx < Py_SIZE(self));
+    assert(val_idx < (size_t)Py_SIZE(self));
 
     key_or_null = self->b_array[key_idx];
     val_or_node = self->b_array[val_idx];
index a0850d066b31f5e964ffcd58be82c66a4a60309e..9e6e594f441a0cf3222231c8dc454d2683821605 100644 (file)
@@ -17,7 +17,7 @@
 extern "C" {
 #endif
 
-_Py_HashSecret_t _Py_HashSecret = {0};
+_Py_HashSecret_t _Py_HashSecret = {{0}};
 
 #if Py_HASH_ALGORITHM == Py_HASH_EXTERNAL
 extern PyHash_FuncDef PyHash_Func;