[Python-checkins] cpython (2.7): Issue #22463: Backport compiler warning fixes and workarounds

martin.panter python-checkins at python.org
Tue Jun 21 20:49:26 EDT 2016


https://hg.python.org/cpython/rev/0b63465a1796
changeset: 102118:0b63465a1796
branch: 2.7
parent: 102109:340a91cccac8
user: Martin Panter <vadmium+py at gmail.com>
date: Tue Jun 21 23:58:05 2016 +0000
summary:
 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.
files:
 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
--- a/Modules/_ctypes/cfield.c
+++ b/Modules/_ctypes/cfield.c
@@ -48,7 +48,7 @@
 {
 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 @@
 }
 
 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
--- a/Modules/datetimemodule.c
+++ b/Modules/datetimemodule.c
@@ -613,7 +613,7 @@
 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 @@
 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
--- a/Modules/expat/xmlparse.c
+++ b/Modules/expat/xmlparse.c
@@ -2,12 +2,6 @@
 See the file COPYING for copying permission.
 */
 
-#include <stddef.h>
-#include <string.h> /* memset(), memcpy() */
-#include <assert.h>
-#include <limits.h> /* UINT_MAX */
-#include <time.h> /* time() */
-
 #define XML_BUILDING_EXPAT 1
 
 #ifdef COMPILED_FROM_DSP
@@ -22,6 +16,12 @@
 #include <expat_config.h>
 #endif /* ndef COMPILED_FROM_DSP */
 
+#include <stddef.h>
+#include <string.h> /* memset(), memcpy() */
+#include <assert.h>
+#include <limits.h> /* UINT_MAX */
+#include <time.h> /* time() */
+
 #include "ascii.h"
 #include "expat.h"
 
diff --git a/Modules/readline.c b/Modules/readline.c
--- a/Modules/readline.c
+++ b/Modules/readline.c
@@ -66,10 +66,11 @@
 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 @@
 
 /* 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 @@
 }
 return result;
 }
+#endif
 
 
 /* A more flexible constructor that saves the "begidx" and "endidx"
diff --git a/Modules/tkappinit.c b/Modules/tkappinit.c
--- a/Modules/tkappinit.c
+++ b/Modules/tkappinit.c
@@ -26,7 +26,9 @@
 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 @@
 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
--- a/Objects/classobject.c
+++ b/Objects/classobject.c
@@ -2256,7 +2256,7 @@
 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
--- a/Objects/complexobject.c
+++ b/Objects/complexobject.c
@@ -239,7 +239,7 @@
 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
--- a/Objects/floatobject.c
+++ b/Objects/floatobject.c
@@ -149,7 +149,7 @@
 /* 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
--- a/Objects/intobject.c
+++ b/Objects/intobject.c
@@ -107,7 +107,7 @@
 /* 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 @@
 /* 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
--- a/Objects/methodobject.c
+++ b/Objects/methodobject.c
@@ -20,7 +20,7 @@
 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
--- a/Objects/stringobject.c
+++ b/Objects/stringobject.c
@@ -88,7 +88,7 @@
 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 @@
 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 @@
 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 @@
 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
--- a/Objects/typeobject.c
+++ b/Objects/typeobject.c
@@ -791,7 +791,7 @@
 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
--- a/Objects/unicodeobject.c
+++ b/Objects/unicodeobject.c
@@ -347,7 +347,7 @@
 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
--- a/Parser/pgen.c
+++ b/Parser/pgen.c
@@ -283,6 +283,7 @@
 
 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) {
-- 
Repository URL: https://hg.python.org/cpython


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /