Fix some warnings produced by different compilers. (GH-5593) (GH-5600)
(cherry picked from commit bfe4fd5f2e96e72eecb5b8a0c7df0ac1689f3b7e)
Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
diff --git a/Modules/_decimal/libmpdec/mpdecimal.c b/Modules/_decimal/libmpdec/mpdecimal.c
index 328ab92..bfa8bb3 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 474c1c9..7fc3d87 100644
--- a/Modules/socketmodule.c
+++ b/Modules/socketmodule.c
@@ -4867,7 +4867,9 @@
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 @@
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 b17ab5a..998216c 100644
--- a/Modules/timemodule.c
+++ b/Modules/timemodule.c
@@ -1192,11 +1192,13 @@
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;
}