diff options
-rw-r--r-- | lldb/packages/Python/lldbsuite/test/expression_command/ir-interpreter/TestIRInterpreter.py | 8 | ||||
-rw-r--r-- | lldb/source/Expression/IRInterpreter.cpp | 8 |
2 files changed, 9 insertions, 7 deletions
diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/ir-interpreter/TestIRInterpreter.py b/lldb/packages/Python/lldbsuite/test/expression_command/ir-interpreter/TestIRInterpreter.py index c0f50109ddb..d8a8038c845 100644 --- a/lldb/packages/Python/lldbsuite/test/expression_command/ir-interpreter/TestIRInterpreter.py +++ b/lldb/packages/Python/lldbsuite/test/expression_command/ir-interpreter/TestIRInterpreter.py @@ -17,6 +17,7 @@ from lldbsuite.test import lldbutil class IRInterpreterTestCase(TestBase): mydir = TestBase.compute_mydir(__file__) + NO_DEBUG_INFO_TESTCASE = True def setUp(self): # Call super's setUp(). @@ -85,3 +86,10 @@ class IRInterpreterTestCase(TestBase): jit_result, "While evaluating " + expression) + + def test_type_conversions(self): + target = self.dbg.GetDummyTarget() + short_val = target.EvaluateExpression("(short)-1") + self.assertEqual(short_val.GetValueAsSigned(), -1) + long_val = target.EvaluateExpression("(long) "+ short_val.GetName()) + self.assertEqual(long_val.GetValueAsSigned(), -1) diff --git a/lldb/source/Expression/IRInterpreter.cpp b/lldb/source/Expression/IRInterpreter.cpp index 9a31db75da2..abf86b739f0 100644 --- a/lldb/source/Expression/IRInterpreter.cpp +++ b/lldb/source/Expression/IRInterpreter.cpp @@ -154,16 +154,10 @@ public: switch (type_size) { case 1: - scalar = (uint8_t)u64value; - break; case 2: - scalar = (uint16_t)u64value; - break; case 4: - scalar = (uint32_t)u64value; - break; case 8: - scalar = (uint64_t)u64value; + scalar = llvm::APInt(type_size*8, u64value); break; default: return false; |