diff --git a/llvm/lib/DebugInfo/DWARF/DWARFFormValue.cpp b/llvm/lib/DebugInfo/DWARF/DWARFFormValue.cpp --- a/llvm/lib/DebugInfo/DWARF/DWARFFormValue.cpp +++ b/llvm/lib/DebugInfo/DWARF/DWARFFormValue.cpp @@ -677,7 +677,9 @@ if (!isFormClass(FC_Address)) return std::nullopt; bool AddrOffset = Form == dwarf::DW_FORM_LLVM_addrx_offset; - if (Form == DW_FORM_GNU_addr_index || Form == DW_FORM_addrx || AddrOffset) { + if (Form == DW_FORM_GNU_addr_index || Form == DW_FORM_addrx || + Form == DW_FORM_addrx1 || Form == DW_FORM_addrx2 || + Form == DW_FORM_addrx3 || Form == DW_FORM_addrx4 || AddrOffset) { uint32_t Index = AddrOffset ? (Value.uval >> 32) : Value.uval; if (!U)