summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lldb/source/Expression/DWARFExpression.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/lldb/source/Expression/DWARFExpression.cpp b/lldb/source/Expression/DWARFExpression.cpp
index df4170fee9e..0be5f560806 100644
--- a/lldb/source/Expression/DWARFExpression.cpp
+++ b/lldb/source/Expression/DWARFExpression.cpp
@@ -1033,9 +1033,11 @@ DWARFExpression::Evaluate
case 2: ptr = ptr & 0xffff; break;
case 3: ptr = ptr & 0xffffff; break;
case 4: ptr = ptr & 0xffffffff; break;
- case 5: ptr = ptr & 0xffffffffff; break;
- case 6: ptr = ptr & 0xffffffffffff; break;
- case 7: ptr = ptr & 0xffffffffffffff; break;
+ // the casts are added to work around the case where intptr_t is a 32 bit quantity;
+ // presumably we won't hit the 5..7 cases if (void*) is 32-bits in this program.
+ case 5: ptr = (intptr_t) ptr & 0xffffffffffULL; break;
+ case 6: ptr = (intptr_t) ptr & 0xffffffffffffULL; break;
+ case 7: ptr = (intptr_t) ptr & 0xffffffffffffffULL; break;
default: break;
}
stack.back().GetScalar() = ptr;
OpenPOWER on IntegriCloud