diff options
| author | Nikita Popov <nikita.ppv@gmail.com> | 2021-10-25 15:47:21 +0200 |
|---|---|---|
| committer | Nikita Popov <nikita.ppv@gmail.com> | 2021-10-27 14:41:31 +0200 |
| commit | fbc0c308d599fe3300ab6516650b65b41979446d (patch) | |
| tree | 46af5892b3a48b299869fb79dd10b79dbfc4735f /lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp | |
| parent | 30a3652b6ade43504087f6e3acd8dc879055f501 (diff) | |
[BasicAA] Handle known bits as ranges
BasicAA currently tries to determine that the offset is positive by
checking whether all variable indices are positive based on known
bits, multiplied by a positive scale. However, this is incorrect
if the scale multiplication might overflow. In the modified test
case the original value is positive, but may be negative after a
left shift.
Fix this by converting known bits into a constant range and reusing
the range-based logic, which handles overflow correctly.
Differential Revision: https://reviews.llvm.org/D112611
Diffstat (limited to 'lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp')
0 files changed, 0 insertions, 0 deletions
