diff --git a/lldb/source/Plugins/Process/FreeBSDRemote/NativeRegisterContextFreeBSD_x86_64.h b/lldb/source/Plugins/Process/FreeBSDRemote/NativeRegisterContextFreeBSD_x86_64.h --- a/lldb/source/Plugins/Process/FreeBSDRemote/NativeRegisterContextFreeBSD_x86_64.h +++ b/lldb/source/Plugins/Process/FreeBSDRemote/NativeRegisterContextFreeBSD_x86_64.h @@ -74,12 +74,12 @@ std::array m_xsave_offsets; std::array m_regset_offsets; - llvm::Optional GetSetForNativeRegNum(int reg_num) const; + llvm::Optional GetSetForNativeRegNum(uint32_t reg_num) const; - Status ReadRegisterSet(uint32_t set); - Status WriteRegisterSet(uint32_t set); + Status ReadRegisterSet(RegSetKind set); + Status WriteRegisterSet(RegSetKind set); - uint8_t *GetOffsetRegSetData(uint32_t set, size_t reg_offset); + uint8_t *GetOffsetRegSetData(RegSetKind set, size_t reg_offset); struct YMMSplitPtr { void *xmm; diff --git a/lldb/source/Plugins/Process/FreeBSDRemote/NativeRegisterContextFreeBSD_x86_64.cpp b/lldb/source/Plugins/Process/FreeBSDRemote/NativeRegisterContextFreeBSD_x86_64.cpp --- a/lldb/source/Plugins/Process/FreeBSDRemote/NativeRegisterContextFreeBSD_x86_64.cpp +++ b/lldb/source/Plugins/Process/FreeBSDRemote/NativeRegisterContextFreeBSD_x86_64.cpp @@ -303,8 +303,9 @@ } } -llvm::Optional -NativeRegisterContextFreeBSD_x86_64::GetSetForNativeRegNum(int reg_num) const { +llvm::Optional +NativeRegisterContextFreeBSD_x86_64::GetSetForNativeRegNum( + uint32_t reg_num) const { switch (GetRegisterInfoInterface().GetTargetArchitecture().GetMachine()) { case llvm::Triple::x86: if (reg_num >= k_first_gpr_i386 && reg_num <= k_last_gpr_i386) @@ -341,7 +342,7 @@ llvm_unreachable("Register does not belong to any register set"); } -Status NativeRegisterContextFreeBSD_x86_64::ReadRegisterSet(uint32_t set) { +Status NativeRegisterContextFreeBSD_x86_64::ReadRegisterSet(RegSetKind set) { switch (set) { case GPRegSet: return NativeProcessFreeBSD::PtraceWrapper(PT_GETREGS, m_thread.GetID(), @@ -382,7 +383,7 @@ llvm_unreachable("NativeRegisterContextFreeBSD_x86_64::ReadRegisterSet"); } -Status NativeRegisterContextFreeBSD_x86_64::WriteRegisterSet(uint32_t set) { +Status NativeRegisterContextFreeBSD_x86_64::WriteRegisterSet(RegSetKind set) { switch (set) { case GPRegSet: return NativeProcessFreeBSD::PtraceWrapper(PT_SETREGS, m_thread.GetID(), @@ -428,7 +429,7 @@ return error; } - llvm::Optional opt_set = GetSetForNativeRegNum(reg); + llvm::Optional opt_set = GetSetForNativeRegNum(reg); if (!opt_set) { // This is likely an internal register for lldb use only and should not be // directly queried. @@ -437,7 +438,7 @@ return error; } - enum RegSetKind set = opt_set.getValue(); + RegSetKind set = opt_set.getValue(); error = ReadRegisterSet(set); if (error.Fail()) return error; @@ -494,7 +495,7 @@ return error; } - llvm::Optional opt_set = GetSetForNativeRegNum(reg); + llvm::Optional opt_set = GetSetForNativeRegNum(reg); if (!opt_set) { // This is likely an internal register for lldb use only and should not be // directly queried. @@ -503,7 +504,7 @@ return error; } - enum RegSetKind set = opt_set.getValue(); + RegSetKind set = opt_set.getValue(); error = ReadRegisterSet(set); if (error.Fail()) return error; @@ -610,7 +611,7 @@ } uint8_t * -NativeRegisterContextFreeBSD_x86_64::GetOffsetRegSetData(uint32_t set, +NativeRegisterContextFreeBSD_x86_64::GetOffsetRegSetData(RegSetKind set, size_t reg_offset) { uint8_t *base; switch (set) { @@ -625,6 +626,8 @@ break; case YMMRegSet: llvm_unreachable("GetRegSetData() is unsuitable for this regset."); + case MPXRegSet: + llvm_unreachable("MPX regset should have returned error"); } assert(reg_offset >= m_regset_offsets[set]); return base + (reg_offset - m_regset_offsets[set]);