runtime.go raw

   1  package unused
   2  
   3  // Functions defined in the Go runtime that may be called through
   4  // compiler magic or via assembly.
   5  var runtimeFuncs = map[string]bool{
   6  	// Copied from cmd/compile/internal/typecheck/builtin.go, var runtimeDecls
   7  	"newobject":               true,
   8  	"panicindex":              true,
   9  	"panicslice":              true,
  10  	"panicdivide":             true,
  11  	"panicmakeslicelen":       true,
  12  	"throwinit":               true,
  13  	"panicwrap":               true,
  14  	"gopanic":                 true,
  15  	"gorecover":               true,
  16  	"goschedguarded":          true,
  17  	"printbool":               true,
  18  	"printfloat":              true,
  19  	"printint":                true,
  20  	"printhex":                true,
  21  	"printuint":               true,
  22  	"printcomplex":            true,
  23  	"printstring":             true,
  24  	"printpointer":            true,
  25  	"printiface":              true,
  26  	"printeface":              true,
  27  	"printslice":              true,
  28  	"printnl":                 true,
  29  	"printsp":                 true,
  30  	"printlock":               true,
  31  	"printunlock":             true,
  32  	"concatstring2":           true,
  33  	"concatstring3":           true,
  34  	"concatstring4":           true,
  35  	"concatstring5":           true,
  36  	"concatstrings":           true,
  37  	"cmpstring":               true,
  38  	"intstring":               true,
  39  	"slicebytetostring":       true,
  40  	"slicebytetostringtmp":    true,
  41  	"slicerunetostring":       true,
  42  	"stringtoslicebyte":       true,
  43  	"stringtoslicerune":       true,
  44  	"slicecopy":               true,
  45  	"slicestringcopy":         true,
  46  	"decoderune":              true,
  47  	"countrunes":              true,
  48  	"convI2I":                 true,
  49  	"convT16":                 true,
  50  	"convT32":                 true,
  51  	"convT64":                 true,
  52  	"convTstring":             true,
  53  	"convTslice":              true,
  54  	"convT2E":                 true,
  55  	"convT2Enoptr":            true,
  56  	"convT2I":                 true,
  57  	"convT2Inoptr":            true,
  58  	"assertE2I":               true,
  59  	"assertE2I2":              true,
  60  	"assertI2I":               true,
  61  	"assertI2I2":              true,
  62  	"panicdottypeE":           true,
  63  	"panicdottypeI":           true,
  64  	"panicnildottype":         true,
  65  	"ifaceeq":                 true,
  66  	"efaceeq":                 true,
  67  	"fastrand":                true,
  68  	"makemap64":               true,
  69  	"makemap":                 true,
  70  	"makemap_small":           true,
  71  	"mapaccess1":              true,
  72  	"mapaccess1_fast32":       true,
  73  	"mapaccess1_fast64":       true,
  74  	"mapaccess1_faststr":      true,
  75  	"mapaccess1_fat":          true,
  76  	"mapaccess2":              true,
  77  	"mapaccess2_fast32":       true,
  78  	"mapaccess2_fast64":       true,
  79  	"mapaccess2_faststr":      true,
  80  	"mapaccess2_fat":          true,
  81  	"mapassign":               true,
  82  	"mapassign_fast32":        true,
  83  	"mapassign_fast32ptr":     true,
  84  	"mapassign_fast64":        true,
  85  	"mapassign_fast64ptr":     true,
  86  	"mapassign_faststr":       true,
  87  	"mapiterinit":             true,
  88  	"mapdelete":               true,
  89  	"mapdelete_fast32":        true,
  90  	"mapdelete_fast64":        true,
  91  	"mapdelete_faststr":       true,
  92  	"mapiternext":             true,
  93  	"mapclear":                true,
  94  	"makechan64":              true,
  95  	"makechan":                true,
  96  	"chanrecv1":               true,
  97  	"chanrecv2":               true,
  98  	"chansend1":               true,
  99  	"closechan":               true,
 100  	"writeBarrier":            true,
 101  	"typedmemmove":            true,
 102  	"typedmemclr":             true,
 103  	"typedslicecopy":          true,
 104  	"selectnbsend":            true,
 105  	"selectnbrecv":            true,
 106  	"selectnbrecv2":           true,
 107  	"selectsetpc":             true,
 108  	"selectgo":                true,
 109  	"block":                   true,
 110  	"makeslice":               true,
 111  	"makeslice64":             true,
 112  	"growslice":               true,
 113  	"memmove":                 true,
 114  	"memclrNoHeapPointers":    true,
 115  	"memclrHasPointers":       true,
 116  	"memequal":                true,
 117  	"memequal8":               true,
 118  	"memequal16":              true,
 119  	"memequal32":              true,
 120  	"memequal64":              true,
 121  	"memequal128":             true,
 122  	"int64div":                true,
 123  	"uint64div":               true,
 124  	"int64mod":                true,
 125  	"uint64mod":               true,
 126  	"float64toint64":          true,
 127  	"float64touint64":         true,
 128  	"float64touint32":         true,
 129  	"int64tofloat64":          true,
 130  	"uint64tofloat64":         true,
 131  	"uint32tofloat64":         true,
 132  	"complex128div":           true,
 133  	"racefuncenter":           true,
 134  	"racefuncenterfp":         true,
 135  	"racefuncexit":            true,
 136  	"raceread":                true,
 137  	"racewrite":               true,
 138  	"racereadrange":           true,
 139  	"racewriterange":          true,
 140  	"msanread":                true,
 141  	"msanwrite":               true,
 142  	"x86HasPOPCNT":            true,
 143  	"x86HasSSE41":             true,
 144  	"arm64HasATOMICS":         true,
 145  	"mallocgc":                true,
 146  	"panicshift":              true,
 147  	"panicmakeslicecap":       true,
 148  	"goPanicIndex":            true,
 149  	"goPanicIndexU":           true,
 150  	"goPanicSliceAlen":        true,
 151  	"goPanicSliceAlenU":       true,
 152  	"goPanicSliceAcap":        true,
 153  	"goPanicSliceAcapU":       true,
 154  	"goPanicSliceB":           true,
 155  	"goPanicSliceBU":          true,
 156  	"goPanicSlice3Alen":       true,
 157  	"goPanicSlice3AlenU":      true,
 158  	"goPanicSlice3Acap":       true,
 159  	"goPanicSlice3AcapU":      true,
 160  	"goPanicSlice3B":          true,
 161  	"goPanicSlice3BU":         true,
 162  	"goPanicSlice3C":          true,
 163  	"goPanicSlice3CU":         true,
 164  	"goPanicSliceConvert":     true,
 165  	"printuintptr":            true,
 166  	"convT":                   true,
 167  	"convTnoptr":              true,
 168  	"makeslicecopy":           true,
 169  	"unsafeslicecheckptr":     true,
 170  	"panicunsafeslicelen":     true,
 171  	"panicunsafeslicenilptr":  true,
 172  	"unsafestringcheckptr":    true,
 173  	"panicunsafestringlen":    true,
 174  	"panicunsafestringnilptr": true,
 175  	"mulUintptr":              true,
 176  	"memequal0":               true,
 177  	"f32equal":                true,
 178  	"f64equal":                true,
 179  	"c64equal":                true,
 180  	"c128equal":               true,
 181  	"strequal":                true,
 182  	"interequal":              true,
 183  	"nilinterequal":           true,
 184  	"memhash":                 true,
 185  	"memhash0":                true,
 186  	"memhash8":                true,
 187  	"memhash16":               true,
 188  	"memhash32":               true,
 189  	"memhash64":               true,
 190  	"memhash128":              true,
 191  	"f32hash":                 true,
 192  	"f64hash":                 true,
 193  	"c64hash":                 true,
 194  	"c128hash":                true,
 195  	"strhash":                 true,
 196  	"interhash":               true,
 197  	"nilinterhash":            true,
 198  	"int64tofloat32":          true,
 199  	"uint64tofloat32":         true,
 200  	"getcallerpc":             true,
 201  	"getcallersp":             true,
 202  	"msanmove":                true,
 203  	"asanread":                true,
 204  	"asanwrite":               true,
 205  	"checkptrAlignment":       true,
 206  	"checkptrArithmetic":      true,
 207  	"libfuzzerTraceCmp1":      true,
 208  	"libfuzzerTraceCmp2":      true,
 209  	"libfuzzerTraceCmp4":      true,
 210  	"libfuzzerTraceCmp8":      true,
 211  	"libfuzzerTraceConstCmp1": true,
 212  	"libfuzzerTraceConstCmp2": true,
 213  	"libfuzzerTraceConstCmp4": true,
 214  	"libfuzzerTraceConstCmp8": true,
 215  	"libfuzzerHookStrCmp":     true,
 216  	"libfuzzerHookEqualFold":  true,
 217  	"addCovMeta":              true,
 218  	"x86HasFMA":               true,
 219  	"armHasVFPv4":             true,
 220  
 221  	// Extracted from assembly code in the standard library, with the exception of the runtime package itself
 222  	"abort":                 true,
 223  	"aeshashbody":           true,
 224  	"args":                  true,
 225  	"asminit":               true,
 226  	"badctxt":               true,
 227  	"badmcall2":             true,
 228  	"badmcall":              true,
 229  	"badmorestackg0":        true,
 230  	"badmorestackgsignal":   true,
 231  	"badsignal2":            true,
 232  	"callbackasm1":          true,
 233  	"callCfunction":         true,
 234  	"cgocallback_gofunc":    true,
 235  	"cgocallbackg":          true,
 236  	"checkgoarm":            true,
 237  	"check":                 true,
 238  	"debugCallCheck":        true,
 239  	"debugCallWrap":         true,
 240  	"emptyfunc":             true,
 241  	"entersyscall":          true,
 242  	"exit":                  true,
 243  	"exits":                 true,
 244  	"exitsyscall":           true,
 245  	"externalthreadhandler": true,
 246  	"findnull":              true,
 247  	"goexit1":               true,
 248  	"gostring":              true,
 249  	"i386_set_ldt":          true,
 250  	"_initcgo":              true,
 251  	"init_thread_tls":       true,
 252  	"ldt0setup":             true,
 253  	"libpreinit":            true,
 254  	"load_g":                true,
 255  	"morestack":             true,
 256  	"mstart":                true,
 257  	"nacl_sysinfo":          true,
 258  	"nanotimeQPC":           true,
 259  	"nanotime":              true,
 260  	"newosproc0":            true,
 261  	"newproc":               true,
 262  	"newstack":              true,
 263  	"noted":                 true,
 264  	"nowQPC":                true,
 265  	"osinit":                true,
 266  	"printf":                true,
 267  	"racecallback":          true,
 268  	"reflectcallmove":       true,
 269  	"reginit":               true,
 270  	"rt0_go":                true,
 271  	"save_g":                true,
 272  	"schedinit":             true,
 273  	"setldt":                true,
 274  	"settls":                true,
 275  	"sighandler":            true,
 276  	"sigprofNonGo":          true,
 277  	"sigtrampgo":            true,
 278  	"_sigtramp":             true,
 279  	"sigtramp":              true,
 280  	"stackcheck":            true,
 281  	"syscall_chdir":         true,
 282  	"syscall_chroot":        true,
 283  	"syscall_close":         true,
 284  	"syscall_dup2":          true,
 285  	"syscall_execve":        true,
 286  	"syscall_exit":          true,
 287  	"syscall_fcntl":         true,
 288  	"syscall_forkx":         true,
 289  	"syscall_gethostname":   true,
 290  	"syscall_getpid":        true,
 291  	"syscall_ioctl":         true,
 292  	"syscall_pipe":          true,
 293  	"syscall_rawsyscall6":   true,
 294  	"syscall_rawSyscall6":   true,
 295  	"syscall_rawsyscall":    true,
 296  	"syscall_RawSyscall":    true,
 297  	"syscall_rawsysvicall6": true,
 298  	"syscall_setgid":        true,
 299  	"syscall_setgroups":     true,
 300  	"syscall_setpgid":       true,
 301  	"syscall_setsid":        true,
 302  	"syscall_setuid":        true,
 303  	"syscall_syscall6":      true,
 304  	"syscall_syscall":       true,
 305  	"syscall_Syscall":       true,
 306  	"syscall_sysvicall6":    true,
 307  	"syscall_wait4":         true,
 308  	"syscall_write":         true,
 309  	"traceback":             true,
 310  	"tstart":                true,
 311  	"usplitR0":              true,
 312  	"wbBufFlush":            true,
 313  	"write":                 true,
 314  
 315  	// Other runtime functions that can get called in non-standard ways
 316  	"bgsweep":             true,
 317  	"memhash_varlen":      true,
 318  	"strhashFallback":     true,
 319  	"asanregisterglobals": true,
 320  	"cgoUse":              true,
 321  	"cgoCheckPointer":     true,
 322  	"cgoCheckResult":      true,
 323  	"_cgo_panic_internal": true,
 324  	"addExitHook":         true,
 325  }
 326  
 327  var runtimeCoverageFuncs = map[string]bool{
 328  	"initHook":            true,
 329  	"markProfileEmitted":  true,
 330  	"processCoverTestDir": true,
 331  }
 332