From 646b528467b171148143980452d2aa4294cbe5c8 Mon Sep 17 00:00:00 2001 From: Martin Panter Date: Tue, 21 Jun 2016 23:58:05 +0000 Subject: Issue #22463: Backport compiler warning fixes and workarounds * Set but unused variable in Parser/pgen.c in non-debug builds. Patch by Christian Heimes. * Unused static function in Modules/readline.c. Patch by Georg Brandl. * main_window unused in Modules/tkappinit.c. Patch by Gregory P. Smith. * Dead assignment in Modules/_ctypes/cfield.c. Extracted from patch by Brett Cannon. * Expression result unused in PyObject_INIT macro expansions. Based on patches by Christian Heimes. * Load expat_config.h and therefore pyconfig.h before C stdlib headers are loaded. This silences pre-processor warnings including '_POSIX_C_SOURCE redefined'. Extracted from patch by Christian Heimes. --- Modules/_ctypes/cfield.c | 3 +-- Modules/datetimemodule.c | 4 ++-- Modules/expat/xmlparse.c | 12 ++++++------ Modules/readline.c | 5 ++++- Modules/tkappinit.c | 6 ++++++ Objects/classobject.c | 2 +- Objects/complexobject.c | 2 +- Objects/floatobject.c | 2 +- Objects/intobject.c | 4 ++-- Objects/methodobject.c | 2 +- Objects/stringobject.c | 8 ++++---- Objects/typeobject.c | 2 +- Objects/unicodeobject.c | 2 +- Parser/pgen.c | 1 + 14 files changed, 32 insertions(+), 23 deletions(-) diff --git a/Modules/_ctypes/cfield.c b/Modules/_ctypes/cfield.c index 75f65a1..7fe984d 100644 --- a/Modules/_ctypes/cfield.c +++ b/Modules/_ctypes/cfield.c @@ -48,7 +48,7 @@ PyCField_FromDesc(PyObject *desc, Py_ssize_t index, { CFieldObject *self; PyObject *proto; - Py_ssize_t size, align, length; + Py_ssize_t size, align; SETFUNC setfunc = NULL; GETFUNC getfunc = NULL; StgDictObject *dict; @@ -102,7 +102,6 @@ PyCField_FromDesc(PyObject *desc, Py_ssize_t index, } size = dict->size; - length = dict->length; proto = desc; /* Field descriptors for 'c_char * n' are be scpecial cased to diff --git a/Modules/datetimemodule.c b/Modules/datetimemodule.c index e7fd349..4573637 100644 --- a/Modules/datetimemodule.c +++ b/Modules/datetimemodule.c @@ -613,7 +613,7 @@ time_alloc(PyTypeObject *type, Py_ssize_t aware) sizeof(_PyDateTime_BaseTime)); if (self == NULL) return (PyObject *)PyErr_NoMemory(); - PyObject_INIT(self, type); + (void)PyObject_INIT(self, type); return self; } @@ -628,7 +628,7 @@ datetime_alloc(PyTypeObject *type, Py_ssize_t aware) sizeof(_PyDateTime_BaseDateTime)); if (self == NULL) return (PyObject *)PyErr_NoMemory(); - PyObject_INIT(self, type); + (void)PyObject_INIT(self, type); return self; } diff --git a/Modules/expat/xmlparse.c b/Modules/expat/xmlparse.c index 6a61508..4128387 100644 --- a/Modules/expat/xmlparse.c +++ b/Modules/expat/xmlparse.c @@ -2,12 +2,6 @@ See the file COPYING for copying permission. */ -#include -#include /* memset(), memcpy() */ -#include -#include /* UINT_MAX */ -#include /* time() */ - #define XML_BUILDING_EXPAT 1 #ifdef COMPILED_FROM_DSP @@ -22,6 +16,12 @@ #include #endif /* ndef COMPILED_FROM_DSP */ +#include +#include /* memset(), memcpy() */ +#include +#include /* UINT_MAX */ +#include /* time() */ + #include "ascii.h" #include "expat.h" diff --git a/Modules/readline.c b/Modules/readline.c index 1600cd3..bfb5d76 100644 --- a/Modules/readline.c +++ b/Modules/readline.c @@ -66,10 +66,11 @@ static const char libedit_version_tag[] = "EditLine wrapper"; static int libedit_history_start = 0; #endif /* __APPLE__ */ +#ifdef HAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK static void on_completion_display_matches_hook(char **matches, int num_matches, int max_length); - +#endif /* Memory allocated for rl_completer_word_break_characters (see issue #17289 for the motivation). */ @@ -774,6 +775,7 @@ on_pre_input_hook() /* C function to call the Python completion_display_matches */ +#ifdef HAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK static void on_completion_display_matches_hook(char **matches, int num_matches, int max_length) @@ -874,6 +876,7 @@ on_completion(const char *text, int state) } return result; } +#endif /* A more flexible constructor that saves the "begidx" and "endidx" diff --git a/Modules/tkappinit.c b/Modules/tkappinit.c index c1f97b0..2ed8594 100644 --- a/Modules/tkappinit.c +++ b/Modules/tkappinit.c @@ -26,7 +26,9 @@ static int tk_load_failed; int Tcl_AppInit(Tcl_Interp *interp) { +#ifdef WITH_MOREBUTTONS Tk_Window main_window; +#endif const char *_tkinter_skip_tk_init; #ifdef TKINTER_PROTECT_LOADTK const char *_tkinter_tk_failed; @@ -111,7 +113,11 @@ Tcl_AppInit(Tcl_Interp *interp) return TCL_ERROR; } +#ifdef WITH_MOREBUTTONS main_window = Tk_MainWindow(interp); +#else + Tk_MainWindow(interp); +#endif #ifdef TK_AQUA TkMacOSXInitAppleEvents(interp); diff --git a/Objects/classobject.c b/Objects/classobject.c index 636d178..738e613 100644 --- a/Objects/classobject.c +++ b/Objects/classobject.c @@ -2256,7 +2256,7 @@ PyMethod_New(PyObject *func, PyObject *self, PyObject *klass) im = free_list; if (im != NULL) { free_list = (PyMethodObject *)(im->im_self); - PyObject_INIT(im, &PyMethod_Type); + (void)PyObject_INIT(im, &PyMethod_Type); numfree--; } else { diff --git a/Objects/complexobject.c b/Objects/complexobject.c index 9e97d1b..c4e3895 100644 --- a/Objects/complexobject.c +++ b/Objects/complexobject.c @@ -239,7 +239,7 @@ PyComplex_FromCComplex(Py_complex cval) op = (PyComplexObject *) PyObject_MALLOC(sizeof(PyComplexObject)); if (op == NULL) return PyErr_NoMemory(); - PyObject_INIT(op, &PyComplex_Type); + (void)PyObject_INIT(op, &PyComplex_Type); op->cval = cval; return (PyObject *) op; } diff --git a/Objects/floatobject.c b/Objects/floatobject.c index 82cb28d..801f286 100644 --- a/Objects/floatobject.c +++ b/Objects/floatobject.c @@ -149,7 +149,7 @@ PyFloat_FromDouble(double fval) /* Inline PyObject_New */ op = free_list; free_list = (PyFloatObject *)Py_TYPE(op); - PyObject_INIT(op, &PyFloat_Type); + (void)PyObject_INIT(op, &PyFloat_Type); op->ob_fval = fval; return (PyObject *) op; } diff --git a/Objects/intobject.c b/Objects/intobject.c index 654d2fe..41bb074 100644 --- a/Objects/intobject.c +++ b/Objects/intobject.c @@ -107,7 +107,7 @@ PyInt_FromLong(long ival) /* Inline PyObject_New */ v = free_list; free_list = (PyIntObject *)Py_TYPE(v); - PyObject_INIT(v, &PyInt_Type); + (void)PyObject_INIT(v, &PyInt_Type); v->ob_ival = ival; return (PyObject *) v; } @@ -1466,7 +1466,7 @@ _PyInt_Init(void) /* PyObject_New is inlined */ v = free_list; free_list = (PyIntObject *)Py_TYPE(v); - PyObject_INIT(v, &PyInt_Type); + (void)PyObject_INIT(v, &PyInt_Type); v->ob_ival = ival; small_ints[ival + NSMALLNEGINTS] = v; } diff --git a/Objects/methodobject.c b/Objects/methodobject.c index 0b60ca3..c1a99ab 100644 --- a/Objects/methodobject.c +++ b/Objects/methodobject.c @@ -20,7 +20,7 @@ PyCFunction_NewEx(PyMethodDef *ml, PyObject *self, PyObject *module) op = free_list; if (op != NULL) { free_list = (PyCFunctionObject *)(op->m_self); - PyObject_INIT(op, &PyCFunction_Type); + (void)PyObject_INIT(op, &PyCFunction_Type); numfree--; } else { diff --git a/Objects/stringobject.c b/Objects/stringobject.c index f2db6da..1a04b78 100644 --- a/Objects/stringobject.c +++ b/Objects/stringobject.c @@ -88,7 +88,7 @@ PyString_FromStringAndSize(const char *str, Py_ssize_t size) op = (PyStringObject *)PyObject_MALLOC(PyStringObject_SIZE + size); if (op == NULL) return PyErr_NoMemory(); - PyObject_INIT_VAR(op, &PyString_Type, size); + (void)PyObject_INIT_VAR(op, &PyString_Type, size); op->ob_shash = -1; op->ob_sstate = SSTATE_NOT_INTERNED; if (str != NULL) @@ -143,7 +143,7 @@ PyString_FromString(const char *str) op = (PyStringObject *)PyObject_MALLOC(PyStringObject_SIZE + size); if (op == NULL) return PyErr_NoMemory(); - PyObject_INIT_VAR(op, &PyString_Type, size); + (void)PyObject_INIT_VAR(op, &PyString_Type, size); op->ob_shash = -1; op->ob_sstate = SSTATE_NOT_INTERNED; Py_MEMCPY(op->ob_sval, str, size+1); @@ -1061,7 +1061,7 @@ string_concat(register PyStringObject *a, register PyObject *bb) op = (PyStringObject *)PyObject_MALLOC(PyStringObject_SIZE + size); if (op == NULL) return PyErr_NoMemory(); - PyObject_INIT_VAR(op, &PyString_Type, size); + (void)PyObject_INIT_VAR(op, &PyString_Type, size); op->ob_shash = -1; op->ob_sstate = SSTATE_NOT_INTERNED; Py_MEMCPY(op->ob_sval, a->ob_sval, Py_SIZE(a)); @@ -1103,7 +1103,7 @@ string_repeat(register PyStringObject *a, register Py_ssize_t n) op = (PyStringObject *)PyObject_MALLOC(PyStringObject_SIZE + nbytes); if (op == NULL) return PyErr_NoMemory(); - PyObject_INIT_VAR(op, &PyString_Type, size); + (void)PyObject_INIT_VAR(op, &PyString_Type, size); op->ob_shash = -1; op->ob_sstate = SSTATE_NOT_INTERNED; op->ob_sval[size] = '\0'; diff --git a/Objects/typeobject.c b/Objects/typeobject.c index cae5118..272a283 100644 --- a/Objects/typeobject.c +++ b/Objects/typeobject.c @@ -791,7 +791,7 @@ PyType_GenericAlloc(PyTypeObject *type, Py_ssize_t nitems) Py_INCREF(type); if (type->tp_itemsize == 0) - PyObject_INIT(obj, type); + (void)PyObject_INIT(obj, type); else (void) PyObject_INIT_VAR((PyVarObject *)obj, type, nitems); diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c index 0b81a3c..ca6628e 100644 --- a/Objects/unicodeobject.c +++ b/Objects/unicodeobject.c @@ -347,7 +347,7 @@ PyUnicodeObject *_PyUnicode_New(Py_ssize_t length) size_t new_size = sizeof(Py_UNICODE) * ((size_t)length + 1); unicode->str = (Py_UNICODE*) PyObject_MALLOC(new_size); } - PyObject_INIT(unicode, &PyUnicode_Type); + (void)PyObject_INIT(unicode, &PyUnicode_Type); } else { size_t new_size; diff --git a/Parser/pgen.c b/Parser/pgen.c index beaf53b..b2f8470 100644 --- a/Parser/pgen.c +++ b/Parser/pgen.c @@ -283,6 +283,7 @@ compile_atom(labellist *ll, nfa *nf, node *n, int *pa, int *pb) REQ(n, ATOM); i = n->n_nchildren; + (void)i; /* Don't warn about set but unused */ REQN(i, 1); n = n->n_child; if (n->n_type == LPAR) { -- cgit v0.12