I was trying to figure out why (gdb) py print "%x" % (gdb.parse_and_eval("0xffffffff12345678")) was coming out negative -edcba988 and traced it to valpy_int not respecting unsignedness. I see valpy_long DTRT. I guess valpy_int didn't get similarly updated.
*** Bug 12267 has been marked as a duplicate of this bug. ***
The master branch has been updated by Tom Tromey <tromey@sourceware.org>: https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=1c1e54f6b4b6de83aa3f31e6584f5bb4d6242930 commit 1c1e54f6b4b6de83aa3f31e6584f5bb4d6242930 Author: Tom Tromey <tom@tromey.com> Date: Fri Sep 14 22:44:10 2018 -0600 Preserve sign when converting gdb.Value to Python int PR python/20126 points out that sometimes the conversion of a gdb.Value can result in a negative Python integer. This happens because valpy_int does not examine the signedness of the value's type. gdb/ChangeLog 2018-09-23 Tom Tromey <tom@tromey.com> PR python/20126: * python/py-value.c (valpy_int): Respect type sign. gdb/testsuite/ChangeLog 2018-09-23 Tom Tromey <tom@tromey.com> PR python/20126: * gdb.python/py-value.exp (test_value_numeric_ops): Add signed-ness conversion tests.
Fixed.