Fix some warnings produced by different compilers. (#5593)

This commit is contained in:
Serhiy Storchaka 2018-02-09 17:31:26 +02:00 committed by GitHub
parent 5bb0005f9f
commit bfe4fd5f2e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 19 additions and 7 deletions

View File

@ -53,6 +53,12 @@
#endif #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) #if defined(_MSC_VER)
#define ALWAYS_INLINE __forceinline #define ALWAYS_INLINE __forceinline
#elif defined(LEGACY_COMPILER) #elif defined(LEGACY_COMPILER)

View File

@ -4867,7 +4867,9 @@ sock_initobj(PyObject *self, PyObject *args, PyObject *kwds)
if (type == -1) { if (type == -1) {
int tmp; int tmp;
socklen_t slen = sizeof(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; type = tmp;
} else { } else {
#ifdef MS_WINDOWS #ifdef MS_WINDOWS
@ -4885,7 +4887,9 @@ sock_initobj(PyObject *self, PyObject *args, PyObject *kwds)
if (proto == -1) { if (proto == -1) {
int tmp; int tmp;
socklen_t slen = sizeof(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; proto = tmp;
} else { } else {
#ifdef MS_WINDOWS #ifdef MS_WINDOWS

View File

@ -1192,11 +1192,13 @@ _PyTime_GetProcessTimeWithInfo(_PyTime_t *tp, _Py_clock_info_t *info)
if (freq != -1) { if (freq != -1) {
/* check that _PyTime_MulDiv(t, SEC_TO_NS, ticks_per_second) /* check that _PyTime_MulDiv(t, SEC_TO_NS, ticks_per_second)
cannot overflow below */ cannot overflow below */
#if LONG_MAX > _PyTime_MAX / SEC_TO_NS
if ((_PyTime_t)freq > _PyTime_MAX / SEC_TO_NS) { if ((_PyTime_t)freq > _PyTime_MAX / SEC_TO_NS) {
PyErr_SetString(PyExc_OverflowError, PyErr_SetString(PyExc_OverflowError,
"_SC_CLK_TCK is too large"); "_SC_CLK_TCK is too large");
return -1; return -1;
} }
#endif
ticks_per_second = freq; ticks_per_second = freq;
} }

View File

@ -8,7 +8,7 @@
#define CONTEXT_FREELIST_MAXLEN 255 #define CONTEXT_FREELIST_MAXLEN 255
static PyContext *ctx_freelist = NULL; static PyContext *ctx_freelist = NULL;
static Py_ssize_t ctx_freelist_len = 0; static int ctx_freelist_len = 0;
#include "clinic/context.c.h" #include "clinic/context.c.h"
@ -1177,7 +1177,7 @@ get_token_missing(void)
int int
PyContext_ClearFreeList(void) PyContext_ClearFreeList(void)
{ {
Py_ssize_t size = ctx_freelist_len; int size = ctx_freelist_len;
while (ctx_freelist_len) { while (ctx_freelist_len) {
PyContext *ctx = ctx_freelist; PyContext *ctx = ctx_freelist;
ctx_freelist = (PyContext *)ctx->ctx_weakreflist; ctx_freelist = (PyContext *)ctx->ctx_weakreflist;

View File

@ -729,7 +729,7 @@ hamt_node_bitmap_assoc(PyHamtNode_Bitmap *self,
uint32_t key_idx = 2 * idx; uint32_t key_idx = 2 * idx;
uint32_t val_idx = key_idx + 1; 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 *key_or_null = self->b_array[key_idx];
PyObject *val_or_node = self->b_array[val_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; key_idx = idx * 2;
val_idx = key_idx + 1; 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]; key_or_null = self->b_array[key_idx];
val_or_node = self->b_array[val_idx]; val_or_node = self->b_array[val_idx];

View File

@ -17,7 +17,7 @@
extern "C" { extern "C" {
#endif #endif
_Py_HashSecret_t _Py_HashSecret = {0}; _Py_HashSecret_t _Py_HashSecret = {{0}};
#if Py_HASH_ALGORITHM == Py_HASH_EXTERNAL #if Py_HASH_ALGORITHM == Py_HASH_EXTERNAL
extern PyHash_FuncDef PyHash_Func; extern PyHash_FuncDef PyHash_Func;