summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVictor Stinner <victor.stinner@gmail.com>2017-11-29 23:00:35 (GMT)
committerGitHub <noreply@github.com>2017-11-29 23:00:35 (GMT)
commitdedcbee04cd52790027ecfb46cb3aa33efebdc84 (patch)
tree8baf1fdc20354eacc76c325448efd1bc36ed7443
parent06be9daf6f03c1c65b9dd9896bc2b17f3c4bbc3a (diff)
downloadcpython-dedcbee04cd52790027ecfb46cb3aa33efebdc84.zip
cpython-dedcbee04cd52790027ecfb46cb3aa33efebdc84.tar.gz
cpython-dedcbee04cd52790027ecfb46cb3aa33efebdc84.tar.bz2
[3.6] bpo-30923, bpo-31279: Fix GCC warnings (#4620)
* bpo-30923: Silence fall-through warnings in libexpat build. (#3205) (cherry picked from commit 9e1e6f528f3fec16b9bd99f5ee38048ffec04a81) * bpo-31279: Silence -Wstringop-overflow warning. (#3207) (cherry picked from commit dce6502059f46a04f90938b9d832394c8215397b)
-rw-r--r--Objects/bytearrayobject.c2
-rw-r--r--setup.py9
2 files changed, 10 insertions, 1 deletions
diff --git a/Objects/bytearrayobject.c b/Objects/bytearrayobject.c
index 7653322..1552457 100644
--- a/Objects/bytearrayobject.c
+++ b/Objects/bytearrayobject.c
@@ -244,7 +244,7 @@ PyByteArray_Resize(PyObject *self, Py_ssize_t requested_size)
return -1;
}
memcpy(sval, PyByteArray_AS_STRING(self),
- Py_MIN(requested_size, Py_SIZE(self)));
+ Py_MIN((size_t)requested_size, (size_t)Py_SIZE(self)));
PyObject_Free(obj->ob_bytes);
}
else {
diff --git a/setup.py b/setup.py
index da4fcc3..0d644db 100644
--- a/setup.py
+++ b/setup.py
@@ -1526,6 +1526,7 @@ class PyBuildExt(build_ext):
if '--with-system-expat' in sysconfig.get_config_var("CONFIG_ARGS"):
expat_inc = []
define_macros = []
+ extra_compile_args = []
expat_lib = ['expat']
expat_sources = []
expat_depends = []
@@ -1537,6 +1538,7 @@ class PyBuildExt(build_ext):
# call XML_SetHashSalt(), expat entropy sources are not needed
('XML_POOR_ENTROPY', '1'),
]
+ extra_compile_args = []
expat_lib = []
expat_sources = ['expat/xmlparse.c',
'expat/xmlrole.c',
@@ -1554,8 +1556,15 @@ class PyBuildExt(build_ext):
'expat/xmltok_impl.h'
]
+ cc = sysconfig.get_config_var('CC').split()[0]
+ ret = os.system(
+ '"%s" -Werror -Wimplicit-fallthrough -E -xc /dev/null >/dev/null 2>&1' % cc)
+ if ret >> 8 == 0:
+ extra_compile_args.append('-Wno-implicit-fallthrough')
+
exts.append(Extension('pyexpat',
define_macros = define_macros,
+ extra_compile_args = extra_compile_args,
include_dirs = expat_inc,
libraries = expat_lib,
sources = ['pyexpat.c'] + expat_sources,