#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)
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
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
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;
}
#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"
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;
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];
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];
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;