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

package sym

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[Sxxx-0]
	_ = x[STEXT-1]
	_ = x[STEXTFIPSSTART-2]
	_ = x[STEXTFIPS-3]
	_ = x[STEXTFIPSEND-4]
	_ = x[STEXTEND-5]
	_ = x[SELFRXSECT-6]
	_ = x[SMACHOPLT-7]
	_ = x[SSTRING-8]
	_ = x[SGOSTRING-9]
	_ = x[SGCBITS-10]
	_ = x[SRODATA-11]
	_ = x[SRODATAFIPSSTART-12]
	_ = x[SRODATAFIPS-13]
	_ = x[SRODATAFIPSEND-14]
	_ = x[SRODATAEND-15]
	_ = x[SPCLNTAB-16]
	_ = x[SELFROSECT-17]
	_ = x[SRODATARELRO-18]
	_ = x[STYPE-19]
	_ = x[SGOFUNC-20]
	_ = x[SELFRELROSECT-21]
	_ = x[SMACHORELROSECT-22]
	_ = x[SFirstWritable-23]
	_ = x[SBUILDINFO-24]
	_ = x[SFIPSINFO-25]
	_ = x[SELFSECT-26]
	_ = x[SMACHO-27]
	_ = x[SWINDOWS-28]
	_ = x[SMODULEDATA-29]
	_ = x[SELFGOT-30]
	_ = x[SMACHOGOT-31]
	_ = x[SNOPTRDATA-32]
	_ = x[SNOPTRDATAFIPSSTART-33]
	_ = x[SNOPTRDATAFIPS-34]
	_ = x[SNOPTRDATAFIPSEND-35]
	_ = x[SNOPTRDATAEND-36]
	_ = x[SINITARR-37]
	_ = x[SDATA-38]
	_ = x[SDATAFIPSSTART-39]
	_ = x[SDATAFIPS-40]
	_ = x[SDATAFIPSEND-41]
	_ = x[SDATAEND-42]
	_ = x[SXCOFFTOC-43]
	_ = x[SBSS-44]
	_ = x[SNOPTRBSS-45]
	_ = x[SGCMASK-46]
	_ = x[SLIBFUZZER_8BIT_COUNTER-47]
	_ = x[SCOVERAGE_COUNTER-48]
	_ = x[SCOVERAGE_AUXVAR-49]
	_ = x[STLSBSS-50]
	_ = x[SFirstUnallocated-51]
	_ = x[SXREF-52]
	_ = x[SMACHOSYMSTR-53]
	_ = x[SMACHOSYMTAB-54]
	_ = x[SMACHOINDIRECTPLT-55]
	_ = x[SMACHOINDIRECTGOT-56]
	_ = x[SDYNIMPORT-57]
	_ = x[SHOSTOBJ-58]
	_ = x[SUNDEFEXT-59]
	_ = x[SDWARFSECT-60]
	_ = x[SDWARFCUINFO-61]
	_ = x[SDWARFCONST-62]
	_ = x[SDWARFFCN-63]
	_ = x[SDWARFABSFCN-64]
	_ = x[SDWARFTYPE-65]
	_ = x[SDWARFVAR-66]
	_ = x[SDWARFRANGE-67]
	_ = x[SDWARFLOC-68]
	_ = x[SDWARFLINES-69]
	_ = x[SDWARFADDR-70]
	_ = x[SSEHUNWINDINFO-71]
	_ = x[SSEHSECT-72]
}

const _SymKind_name = "SxxxSTEXTSTEXTFIPSSTARTSTEXTFIPSSTEXTFIPSENDSTEXTENDSELFRXSECTSMACHOPLTSSTRINGSGOSTRINGSGCBITSSRODATASRODATAFIPSSTARTSRODATAFIPSSRODATAFIPSENDSRODATAENDSPCLNTABSELFROSECTSRODATARELROSTYPESGOFUNCSELFRELROSECTSMACHORELROSECTSFirstWritableSBUILDINFOSFIPSINFOSELFSECTSMACHOSWINDOWSSMODULEDATASELFGOTSMACHOGOTSNOPTRDATASNOPTRDATAFIPSSTARTSNOPTRDATAFIPSSNOPTRDATAFIPSENDSNOPTRDATAENDSINITARRSDATASDATAFIPSSTARTSDATAFIPSSDATAFIPSENDSDATAENDSXCOFFTOCSBSSSNOPTRBSSSGCMASKSLIBFUZZER_8BIT_COUNTERSCOVERAGE_COUNTERSCOVERAGE_AUXVARSTLSBSSSFirstUnallocatedSXREFSMACHOSYMSTRSMACHOSYMTABSMACHOINDIRECTPLTSMACHOINDIRECTGOTSDYNIMPORTSHOSTOBJSUNDEFEXTSDWARFSECTSDWARFCUINFOSDWARFCONSTSDWARFFCNSDWARFABSFCNSDWARFTYPESDWARFVARSDWARFRANGESDWARFLOCSDWARFLINESSDWARFADDRSSEHUNWINDINFOSSEHSECT"

var _SymKind_index = [...]uint16{0, 4, 9, 23, 32, 44, 52, 62, 71, 78, 87, 94, 101, 117, 128, 142, 152, 160, 170, 182, 187, 194, 207, 222, 236, 246, 255, 263, 269, 277, 288, 295, 304, 314, 333, 347, 364, 377, 385, 390, 404, 413, 425, 433, 442, 446, 455, 462, 485, 502, 518, 525, 542, 547, 559, 571, 588, 605, 615, 623, 632, 642, 654, 665, 674, 686, 696, 705, 716, 725, 736, 746, 760, 768}

func (i SymKind) String() string {
	idx := int(i) - 0
	if i < 0 || idx >= len(_SymKind_index)-1 {
		return "SymKind(" + strconv.FormatInt(int64(i), 10) + ")"
	}
	return _SymKind_name[_SymKind_index[idx]:_SymKind_index[idx+1]]
}
