summaryrefslogtreecommitdiffstats
path: root/llvm/lib/DebugInfo/DWARF/DWARFExpression.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib/DebugInfo/DWARF/DWARFExpression.cpp')
-rw-r--r--llvm/lib/DebugInfo/DWARF/DWARFExpression.cpp12
1 files changed, 8 insertions, 4 deletions
diff --git a/llvm/lib/DebugInfo/DWARF/DWARFExpression.cpp b/llvm/lib/DebugInfo/DWARF/DWARFExpression.cpp
index 133b85a0969..644075011a3 100644
--- a/llvm/lib/DebugInfo/DWARF/DWARFExpression.cpp
+++ b/llvm/lib/DebugInfo/DWARF/DWARFExpression.cpp
@@ -155,17 +155,21 @@ bool DWARFExpression::Operation::extract(DataExtractor Data, uint16_t Version,
case Operation::SizeAddr:
if (AddressSize == 8) {
Operands[Operand] = Data.getU64(&Offset);
- } else {
- assert(AddressSize == 4);
+ } else if (AddressSize == 4) {
Operands[Operand] = Data.getU32(&Offset);
+ } else {
+ assert(AddressSize == 2);
+ Operands[Operand] = Data.getU16(&Offset);
}
break;
case Operation::SizeRefAddr:
if (getRefAddrSize(AddressSize, Version) == 8) {
Operands[Operand] = Data.getU64(&Offset);
- } else {
- assert(getRefAddrSize(AddressSize, Version) == 4);
+ } else if (getRefAddrSize(AddressSize, Version) == 4) {
Operands[Operand] = Data.getU32(&Offset);
+ } else {
+ assert(getRefAddrSize(AddressSize, Version) == 2);
+ Operands[Operand] = Data.getU16(&Offset);
}
break;
case Operation::SizeLEB:
OpenPOWER on IntegriCloud