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

const _SymKind_name = "SxxxSTEXTSTEXTFIPSSTARTSTEXTFIPSSTEXTFIPSENDSTEXTENDSELFRXSECTSMACHOPLTSTYPESSTRINGSGOSTRINGSGOFUNCSGCBITSSRODATASRODATAFIPSSTARTSRODATAFIPSSRODATAFIPSENDSRODATAENDSFUNCTABSPCLNTABSELFROSECTSTYPERELROSSTRINGRELROSGOSTRINGRELROSGOFUNCRELROSGCBITSRELROSRODATARELROSFUNCTABRELROSELFRELROSECTSMACHORELROSECTSTYPELINKSITABLINKSFirstWritableSBUILDINFOSFIPSINFOSELFSECTSMACHOSWINDOWSSMODULEDATASELFGOTSMACHOGOTSNOPTRDATASNOPTRDATAFIPSSTARTSNOPTRDATAFIPSSNOPTRDATAFIPSENDSNOPTRDATAENDSINITARRSDATASDATAFIPSSTARTSDATAFIPSSDATAFIPSENDSDATAENDSXCOFFTOCSBSSSNOPTRBSSSLIBFUZZER_8BIT_COUNTERSCOVERAGE_COUNTERSCOVERAGE_AUXVARSTLSBSSSFirstUnallocatedSXREFSMACHOSYMSTRSMACHOSYMTABSMACHOINDIRECTPLTSMACHOINDIRECTGOTSDYNIMPORTSHOSTOBJSUNDEFEXTSDWARFSECTSDWARFCUINFOSDWARFCONSTSDWARFFCNSDWARFABSFCNSDWARFTYPESDWARFVARSDWARFRANGESDWARFLOCSDWARFLINESSDWARFADDRSSEHUNWINDINFOSSEHSECT"

var _SymKind_index = [...]uint16{0, 4, 9, 23, 32, 44, 52, 62, 71, 76, 83, 92, 99, 106, 113, 129, 140, 154, 164, 172, 180, 190, 200, 212, 226, 238, 250, 262, 275, 288, 303, 312, 321, 335, 345, 354, 362, 368, 376, 387, 394, 403, 413, 432, 446, 463, 476, 484, 489, 503, 512, 524, 532, 541, 545, 554, 577, 594, 610, 617, 634, 639, 651, 663, 680, 697, 707, 715, 724, 734, 746, 757, 766, 778, 788, 797, 808, 817, 828, 838, 852, 860}

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