OSDN Git Service

PR gdb/10583:
authorTom Tromey <tromey@redhat.com>
Tue, 22 Sep 2009 21:17:21 +0000 (21:17 +0000)
committerTom Tromey <tromey@redhat.com>
Tue, 22 Sep 2009 21:17:21 +0000 (21:17 +0000)
* python/py-value.c (valpy_int): Use PyLong_FromLongLong.
(valpy_long): Likewise.

gdb/ChangeLog
gdb/python/py-value.c

index fe5388a..034c1a6 100644 (file)
@@ -1,5 +1,11 @@
 2009-09-22  Tom Tromey  <tromey@redhat.com>
 
+       PR gdb/10583:
+       * python/py-value.c (valpy_int): Use PyLong_FromLongLong.
+       (valpy_long): Likewise.
+
+2009-09-22  Tom Tromey  <tromey@redhat.com>
+
        PR python/10680:
        * eval.c (evaluate_subexp_standard) <do_call_it>: Handle internal
        functions in EVAL_AVOID_SIDE_EFFECTS case.
index 714aa11..58bcee3 100644 (file)
@@ -784,6 +784,13 @@ valpy_int (PyObject *self)
     }
   GDB_PY_HANDLE_EXCEPTION (except);
 
+#ifdef HAVE_LONG_LONG          /* Defined by Python.  */
+  /* If we have 'long long', and the value overflows a 'long', use a
+     Python Long; otherwise use a Python Int.  */
+  if (sizeof (l) > sizeof (long) && (l > PyInt_GetMax ()
+                                    || l < (- (LONGEST) PyInt_GetMax ()) - 1))
+    return PyLong_FromLongLong (l);
+#endif
   return PyInt_FromLong (l);
 }
 
@@ -808,7 +815,11 @@ valpy_long (PyObject *self)
     }
   GDB_PY_HANDLE_EXCEPTION (except);
 
+#ifdef HAVE_LONG_LONG          /* Defined by Python.  */
+  return PyLong_FromLongLong (l);
+#else
   return PyLong_FromLong (l);
+#endif
 }
 
 /* Implements conversion to float.  */