From: Victor Stinner Date: Tue, 17 Jun 2014 21:31:25 +0000 (+0200) Subject: Issue #10310: Use "unsigned int field:1" instead of "signed int field:1" in a X-Git-Tag: v3.5.0a1~1443^2~18 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=7d7e7756d9e5c5ea3ab33f66925e28b5dcb5169c;p=python Issue #10310: Use "unsigned int field:1" instead of "signed int field:1" in a private structure of the _io module to fix a compiler warning (overflow when assigning the value 1). Fix also a cast in incrementalnewlinedecoder_setstate(). Patch written by Hallvard B Furuseth. --- diff --git a/Modules/_io/textio.c b/Modules/_io/textio.c index 140688fe22..aed5b2d606 100644 --- a/Modules/_io/textio.c +++ b/Modules/_io/textio.c @@ -224,8 +224,8 @@ typedef struct { PyObject_HEAD PyObject *decoder; PyObject *errors; - signed int pendingcr: 1; - signed int translate: 1; + unsigned int pendingcr: 1; + unsigned int translate: 1; unsigned int seennl: 3; } nldecoder_object; @@ -546,7 +546,7 @@ incrementalnewlinedecoder_setstate(nldecoder_object *self, PyObject *state) if (!PyArg_Parse(state, "(OK)", &buffer, &flag)) return NULL; - self->pendingcr = (int) flag & 1; + self->pendingcr = (int) (flag & 1); flag >>= 1; if (self->decoder != Py_None)