Fix a problem where if a uint64_t value is placed into a python dictionary and sent...
authorGreg Clayton <gclayton@apple.com>
Wed, 10 Aug 2016 23:25:57 +0000 (23:25 +0000)
committerGreg Clayton <gclayton@apple.com>
Wed, 10 Aug 2016 23:25:57 +0000 (23:25 +0000)
commit008ec446440646ac154a15dc1f4a3cb2160f7295
tree2725f8a1f6a56b382ee2c940bfeca21d52b36e41
parent357f1be2ca5a835045643cb488f18bb152925795
Fix a problem where if a uint64_t value is placed into a python dictionary and sent up to LLDB and converted to StructuredData, it would not be able to parse the full 64 bit value. A number like 0xf000000000000000L could be placed into a dictionary, and sent to LLDB and it would end up being 0xffffffffffffffff since it would overflow a int64_t. We leave the old code there, but if it overflows, we treat the number like a uint64_t and get it to decode correctly. Added a gtest to cover this so we don't regress. I verified the gtest failed prior to the fix, and it succeeds after it.

<rdar://problem/27409265>

llvm-svn: 278304
lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.cpp
lldb/unittests/ScriptInterpreter/Python/PythonDataObjectsTests.cpp