bpo-33012: Fix invalid function cast warnings with gcc 8 for METH_NOARGS. (GH-6030)
METH_NOARGS functions need only a single argument but they are cast
into a PyCFunction, which takes two arguments. This triggers an
invalid function cast warning in gcc8 due to the argument mismatch.
Fix this by adding a dummy unused argument.
diff --git a/Modules/_io/bytesio.c b/Modules/_io/bytesio.c
index ba33f8c..a50add2 100644
--- a/Modules/_io/bytesio.c
+++ b/Modules/_io/bytesio.c
@@ -758,7 +758,7 @@
*/
static PyObject *
-bytesio_getstate(bytesio *self)
+bytesio_getstate(bytesio *self, PyObject *Py_UNUSED(ignored))
{
PyObject *initvalue = _io_BytesIO_getvalue_impl(self);
PyObject *dict;
diff --git a/Modules/_io/fileio.c b/Modules/_io/fileio.c
index 0d5bf3b..c0e43e0 100644
--- a/Modules/_io/fileio.c
+++ b/Modules/_io/fileio.c
@@ -1123,7 +1123,7 @@
}
static PyObject *
-fileio_getstate(fileio *self)
+fileio_getstate(fileio *self, PyObject *Py_UNUSED(ignored))
{
PyErr_Format(PyExc_TypeError,
"cannot serialize '%s' object", Py_TYPE(self)->tp_name);
diff --git a/Modules/_io/stringio.c b/Modules/_io/stringio.c
index 718b1ac..f280b30 100644
--- a/Modules/_io/stringio.c
+++ b/Modules/_io/stringio.c
@@ -812,7 +812,7 @@
*/
static PyObject *
-stringio_getstate(stringio *self)
+stringio_getstate(stringio *self, PyObject *Py_UNUSED(ignored))
{
PyObject *initvalue = _io_StringIO_getvalue_impl(self);
PyObject *dict;
diff --git a/Modules/_io/textio.c b/Modules/_io/textio.c
index 717b56a..209aa13 100644
--- a/Modules/_io/textio.c
+++ b/Modules/_io/textio.c
@@ -66,7 +66,7 @@
);
static PyObject *
-textiobase_detach(PyObject *self)
+textiobase_detach(PyObject *self, PyObject *Py_UNUSED(ignored))
{
return _unsupported("detach");
}
@@ -148,7 +148,7 @@
static PyMethodDef textiobase_methods[] = {
- {"detach", (PyCFunction)textiobase_detach, METH_NOARGS, textiobase_detach_doc},
+ {"detach", textiobase_detach, METH_NOARGS, textiobase_detach_doc},
{"read", textiobase_read, METH_VARARGS, textiobase_read_doc},
{"readline", textiobase_readline, METH_VARARGS, textiobase_readline_doc},
{"write", textiobase_write, METH_VARARGS, textiobase_write_doc},
diff --git a/Modules/_io/winconsoleio.c b/Modules/_io/winconsoleio.c
index b85c11b..2bf48eb 100644
--- a/Modules/_io/winconsoleio.c
+++ b/Modules/_io/winconsoleio.c
@@ -1057,7 +1057,7 @@
}
static PyObject *
-winconsoleio_getstate(winconsoleio *self)
+winconsoleio_getstate(winconsoleio *self, PyObject *Py_UNUSED(ignored))
{
PyErr_Format(PyExc_TypeError,
"cannot serialize '%s' object", Py_TYPE(self)->tp_name);