// Code generated by "stringer -type=RelocType"; DO NOT EDIT.

package objabi

import "strconv"

func _() {
	// An "invalid array index" compiler error signifies that the constant values have changed.
	// Re-run the stringer command to generate them again.
	var x [1]struct{}
	_ = x[R_ADDR-1]
	_ = x[R_ADDRPOWER-2]
	_ = x[R_ADDRARM64-3]
	_ = x[R_ADDRMIPS-4]
	_ = x[R_ADDROFF-5]
	_ = x[R_SIZE-6]
	_ = x[R_CALL-7]
	_ = x[R_CALLARM-8]
	_ = x[R_CALLARM64-9]
	_ = x[R_CALLIND-10]
	_ = x[R_CALLPOWER-11]
	_ = x[R_CALLMIPS-12]
	_ = x[R_CALLRISCV-13]
	_ = x[R_CONST-14]
	_ = x[R_PCREL-15]
	_ = x[R_TLS_LE-16]
	_ = x[R_TLS_IE-17]
	_ = x[R_GOTOFF-18]
	_ = x[R_PLT0-19]
	_ = x[R_PLT1-20]
	_ = x[R_PLT2-21]
	_ = x[R_USEFIELD-22]
	_ = x[R_USETYPE-23]
	_ = x[R_USEIFACE-24]
	_ = x[R_USEIFACEMETHOD-25]
	_ = x[R_METHODOFF-26]
	_ = x[R_POWER_TOC-27]
	_ = x[R_GOTPCREL-28]
	_ = x[R_JMPMIPS-29]
	_ = x[R_DWARFSECREF-30]
	_ = x[R_DWARFFILEREF-31]
	_ = x[R_ARM64_TLS_LE-32]
	_ = x[R_ARM64_TLS_IE-33]
	_ = x[R_ARM64_GOTPCREL-34]
	_ = x[R_ARM64_GOT-35]
	_ = x[R_ARM64_PCREL-36]
	_ = x[R_ARM64_LDST8-37]
	_ = x[R_ARM64_LDST16-38]
	_ = x[R_ARM64_LDST32-39]
	_ = x[R_ARM64_LDST64-40]
	_ = x[R_ARM64_LDST128-41]
	_ = x[R_POWER_TLS_LE-42]
	_ = x[R_POWER_TLS_IE-43]
	_ = x[R_POWER_TLS-44]
	_ = x[R_ADDRPOWER_DS-45]
	_ = x[R_ADDRPOWER_GOT-46]
	_ = x[R_ADDRPOWER_PCREL-47]
	_ = x[R_ADDRPOWER_TOCREL-48]
	_ = x[R_ADDRPOWER_TOCREL_DS-49]
	_ = x[R_RISCV_PCREL_ITYPE-50]
	_ = x[R_RISCV_PCREL_STYPE-51]
	_ = x[R_RISCV_TLS_IE_ITYPE-52]
	_ = x[R_RISCV_TLS_IE_STYPE-53]
	_ = x[R_PCRELDBL-54]
	_ = x[R_ADDRMIPSU-55]
	_ = x[R_ADDRMIPSTLS-56]
	_ = x[R_ADDRCUOFF-57]
	_ = x[R_WASMIMPORT-58]
	_ = x[R_XCOFFREF-59]
}

const _RelocType_name = "R_ADDRR_ADDRPOWERR_ADDRARM64R_ADDRMIPSR_ADDROFFR_SIZER_CALLR_CALLARMR_CALLARM64R_CALLINDR_CALLPOWERR_CALLMIPSR_CALLRISCVR_CONSTR_PCRELR_TLS_LER_TLS_IER_GOTOFFR_PLT0R_PLT1R_PLT2R_USEFIELDR_USETYPER_USEIFACER_USEIFACEMETHODR_METHODOFFR_POWER_TOCR_GOTPCRELR_JMPMIPSR_DWARFSECREFR_DWARFFILEREFR_ARM64_TLS_LER_ARM64_TLS_IER_ARM64_GOTPCRELR_ARM64_GOTR_ARM64_PCRELR_ARM64_LDST8R_ARM64_LDST16R_ARM64_LDST32R_ARM64_LDST64R_ARM64_LDST128R_POWER_TLS_LER_POWER_TLS_IER_POWER_TLSR_ADDRPOWER_DSR_ADDRPOWER_GOTR_ADDRPOWER_PCRELR_ADDRPOWER_TOCRELR_ADDRPOWER_TOCREL_DSR_RISCV_PCREL_ITYPER_RISCV_PCREL_STYPER_RISCV_TLS_IE_ITYPER_RISCV_TLS_IE_STYPER_PCRELDBLR_ADDRMIPSUR_ADDRMIPSTLSR_ADDRCUOFFR_WASMIMPORTR_XCOFFREF"

var _RelocType_index = [...]uint16{0, 6, 17, 28, 38, 47, 53, 59, 68, 79, 88, 99, 109, 120, 127, 134, 142, 150, 158, 164, 170, 176, 186, 195, 205, 221, 232, 243, 253, 262, 275, 289, 303, 317, 333, 344, 357, 370, 384, 398, 412, 427, 441, 455, 466, 480, 495, 512, 530, 551, 570, 589, 609, 629, 639, 650, 663, 674, 686, 696}

func (i RelocType) String() string {
	i -= 1
	if i < 0 || i >= RelocType(len(_RelocType_index)-1) {
		return "RelocType(" + strconv.FormatInt(int64(i+1), 10) + ")"
	}
	return _RelocType_name[_RelocType_index[i]:_RelocType_index[i+1]]
}
