[Python-checkins] Fix some warnings produced by different compilers. (#5593)

Serhiy Storchaka webhook-mailer at python.org
Fri Feb 9 10:31:31 EST 2018


https://github.com/python/cpython/commit/bfe4fd5f2e96e72eecb5b8a0c7df0ac1689f3b7e
commit: bfe4fd5f2e96e72eecb5b8a0c7df0ac1689f3b7e
branch: master
author: Serhiy Storchaka <storchaka at gmail.com>
committer: GitHub <noreply at github.com>
date: 2018年02月09日T17:31:26+02:00
summary:
Fix some warnings produced by different compilers. (#5593)
files:
M Modules/_decimal/libmpdec/mpdecimal.c
M Modules/socketmodule.c
M Modules/timemodule.c
M Python/context.c
M Python/hamt.c
M Python/pyhash.c
diff --git a/Modules/_decimal/libmpdec/mpdecimal.c b/Modules/_decimal/libmpdec/mpdecimal.c
index 328ab9224628..bfa8bb343e60 100644
--- a/Modules/_decimal/libmpdec/mpdecimal.c
+++ b/Modules/_decimal/libmpdec/mpdecimal.c
@@ -53,6 +53,12 @@
 #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)
diff --git a/Modules/socketmodule.c b/Modules/socketmodule.c
index 13936aa1558e..23061bec5b7e 100644
--- a/Modules/socketmodule.c
+++ b/Modules/socketmodule.c
@@ -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
diff --git a/Modules/timemodule.c b/Modules/timemodule.c
index b17ab5ae824b..998216cc8fdb 100644
--- a/Modules/timemodule.c
+++ b/Modules/timemodule.c
@@ -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;
 }
diff --git a/Python/context.c b/Python/context.c
index 2034a2041215..b727748ee739 100644
--- a/Python/context.c
+++ b/Python/context.c
@@ -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;
diff --git a/Python/hamt.c b/Python/hamt.c
index c9acbbcc5acc..e54d3a4c55f9 100644
--- a/Python/hamt.c
+++ b/Python/hamt.c
@@ -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];
diff --git a/Python/pyhash.c b/Python/pyhash.c
index a0850d066b31..9e6e594f441a 100644
--- a/Python/pyhash.c
+++ b/Python/pyhash.c
@@ -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;


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /