diff options
| author | Victor Stinner <vstinner@redhat.com> | 2018-08-02 18:02:59 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-08-02 18:02:59 +0200 |
| commit | dd4d8b4d80065409dae69f966fd7617e5b3d97f1 (patch) | |
| tree | 60ff84dc2c66cf4f098f28e9387bcb91aa1b3908 | |
| parent | 6a6b2483479a1ad0ab82300452f0ce71fa90b2d7 (diff) | |
| download | cpython-git-dd4d8b4d80065409dae69f966fd7617e5b3d97f1.tar.gz | |
Fix compilation warnings on Windows (GH-8627)
* Fix compilation warning in _ctypes module on Window
(cherry picked from commit 20f11fe43c47b68c8b9dd6539d2d40b66c9957f9)
* Fix compilation warnings on Windows 64-bit
(cherry picked from commit 725e4212229bf68f87d4f66c1815d444ddfc7aa5)
* Fix compiler warning in unicodeobject.c
Explicitly case to Py_UNICODE to fix the warning:
Objects\unicodeobject.c(4225): warning C4244: '=' :
conversion from 'long' to 'Py_UNICODE', possible loss of data
The downcast cannot overflow since we check that value <= 0x10ffff.
| -rw-r--r-- | Modules/_ctypes/libffi_msvc/ffi.c | 2 | ||||
| -rw-r--r-- | Modules/_sqlite/util.c | 2 | ||||
| -rw-r--r-- | Objects/unicodeobject.c | 2 |
3 files changed, 3 insertions, 3 deletions
diff --git a/Modules/_ctypes/libffi_msvc/ffi.c b/Modules/_ctypes/libffi_msvc/ffi.c index f28c3e0a38..587c94b7e6 100644 --- a/Modules/_ctypes/libffi_msvc/ffi.c +++ b/Modules/_ctypes/libffi_msvc/ffi.c @@ -119,7 +119,7 @@ void ffi_prep_args(char *stack, extended_cif *ecif) argp += z; } - if (argp - stack > ecif->cif->bytes) + if (argp >= stack && (unsigned)(argp - stack) > ecif->cif->bytes) { Py_FatalError("FFI BUG: not enough stack space for arguments"); } diff --git a/Modules/_sqlite/util.c b/Modules/_sqlite/util.c index a24dd8c634..73772250f9 100644 --- a/Modules/_sqlite/util.c +++ b/Modules/_sqlite/util.c @@ -132,7 +132,7 @@ _pysqlite_long_from_int64(sqlite_int64 value) } # endif #endif - return PyInt_FromLong(value); + return PyInt_FromLong(Py_SAFE_DOWNCAST(value, sqlite_int64, long)); } sqlite_int64 diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c index 8bf04df2c8..b76db619ad 100644 --- a/Objects/unicodeobject.c +++ b/Objects/unicodeobject.c @@ -4222,7 +4222,7 @@ PyObject *PyUnicode_DecodeCharmap(const char *s, p = PyUnicode_AS_UNICODE(v) + oldpos; } value -= 0x10000; - *p++ = 0xD800 | (value >> 10); + *p++ = 0xD800 | (Py_UNICODE)(value >> 10); *p++ = 0xDC00 | (value & 0x3FF); extrachars -= 2; } |
