diff options
author | Tom Tromey <tom@tromey.com> | 2016-07-21 13:41:54 -0600 |
---|---|---|
committer | Tom Tromey <tom@tromey.com> | 2016-09-20 10:35:27 -0600 |
commit | 12c58cd4dc805cbac97a6d93c971c2496313dce4 (patch) | |
tree | bd8f42f27c92257815d2b0874c1a0e574534996c | |
parent | 9f7efd5bf76aa5065298d13aefb109ecfd7a825a (diff) | |
download | gdb-12c58cd4dc805cbac97a6d93c971c2496313dce4.zip gdb-12c58cd4dc805cbac97a6d93c971c2496313dce4.tar.gz gdb-12c58cd4dc805cbac97a6d93c971c2496313dce4.tar.bz2 |
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.
-rw-r--r-- | gdb/ChangeLog | 7 | ||||
-rw-r--r-- | gdb/python/py-arch.c | 2 | ||||
-rw-r--r-- | gdb/python/py-value.c | 2 |
3 files changed, 11 insertions, 0 deletions
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); |