This is the mail archive of the gdb-cvs@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[binutils-gdb] Avoid -Wduplicated-cond warnings in gdb/python


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=12c58cd4dc805cbac97a6d93c971c2496313dce4

commit 12c58cd4dc805cbac97a6d93c971c2496313dce4
Author: Tom Tromey <tom@tromey.com>
Date:   Thu Jul 21 13:41:54 2016 -0600

    Avoid -Wduplicated-cond warnings in gdb/python
    
    I tried building gdb with -Wduplicated-cond.  This patch fixes the
    simpler issue that was found.
    
    In Python 3, "int" and "long" are synonyms, so code like:
    
          else if (PyLong_Check (obj))
    ...
          else if (PyInt_Check (obj))
    
    .... will trigger this warning.  The fix is to conditionalize the
    PyInt_Check branches on Python 2.
    
    Tested by rebuilding, with both version of Python, on x86-64 Fedora 24.
    
    2016-09-20  Tom Tromey  <tom@tromey.com>
    
    	* python/py-value.c (convert_value_from_python): Make PyInt_Check
    	conditional on Python 2.
    	* python/py-arch.c (archpy_disassemble): Make PyInt_Check
    	conditional on Python 2.

Diff:
---
 gdb/ChangeLog         | 7 +++++++
 gdb/python/py-arch.c  | 2 ++
 gdb/python/py-value.c | 2 ++
 3 files changed, 11 insertions(+)

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 2b0589a..ef18a19 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,10 @@
+2016-09-20  Tom Tromey  <tom@tromey.com>
+
+	* python/py-value.c (convert_value_from_python): Make PyInt_Check
+	conditional on Python 2.
+	* python/py-arch.c (archpy_disassemble): Make PyInt_Check
+	conditional on Python 2.
+
 2016-09-20  Edjunior Barbosa Machado  <emachado@linux.vnet.ibm.com>
 
 	* rs6000-tdep.c (ppc_process_record_op31): Fix record of Store String
diff --git a/gdb/python/py-arch.c b/gdb/python/py-arch.c
index 0f7d432..4a2dcbf 100644
--- a/gdb/python/py-arch.c
+++ b/gdb/python/py-arch.c
@@ -141,10 +141,12 @@ archpy_disassemble (PyObject *self, PyObject *args, PyObject *kw)
 	 conversion process.  */
       if (PyLong_Check (end_obj))
         end = PyLong_AsUnsignedLongLong (end_obj);
+#if PY_MAJOR_VERSION == 2
       else if (PyInt_Check (end_obj))
         /* If the end_pc value is specified without a trailing 'L', end_obj will
            be an integer and not a long integer.  */
         end = PyInt_AsLong (end_obj);
+#endif
       else
         {
           Py_DECREF (end_obj);
diff --git a/gdb/python/py-value.c b/gdb/python/py-value.c
index 21e9247..b0d3df3 100644
--- a/gdb/python/py-value.c
+++ b/gdb/python/py-value.c
@@ -1642,6 +1642,7 @@ convert_value_from_python (PyObject *obj)
 	  else
 	    value = value_from_longest (builtin_type_pylong, l);
 	}
+#if PY_MAJOR_VERSION == 2
       else if (PyInt_Check (obj))
 	{
 	  long l = PyInt_AsLong (obj);
@@ -1649,6 +1650,7 @@ convert_value_from_python (PyObject *obj)
 	  if (! PyErr_Occurred ())
 	    value = value_from_longest (builtin_type_pyint, l);
 	}
+#endif
       else if (PyFloat_Check (obj))
 	{
 	  double d = PyFloat_AsDouble (obj);


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]