var _cgo_init … var _cgo_thread_start … var _cgo_sys_thread_create … var _cgo_notify_runtime_init_done … var _cgo_callers … var _cgo_set_context_function … var _cgo_yield … var _cgo_pthread_key_created … var _cgo_bindm … var _cgo_getstackbound … var iscgo … var set_crosscall2 … var cgoHasExtraM … // cgoUse is called by cgo-generated code (using go:linkname to get at // an unexported name). The calls serve two purposes: // 1) they are opaque to escape analysis, so the argument is considered to // escape to the heap. // 2) they keep the argument alive until the call site; the call is emitted after // the end of the (presumed) use of the argument by C. // cgoUse should not actually be called (see cgoAlwaysFalse). func cgoUse(any) { … } // cgoKeepAlive is called by cgo-generated code (using go:linkname to get at // an unexported name). This call keeps its argument alive until the call site; // cgo emits the call after the last possible use of the argument by C code. // cgoKeepAlive is marked in the cgo-generated code as //go:noescape, so // unlike cgoUse it does not force the argument to escape to the heap. // This is used to implement the #cgo noescape directive. func cgoKeepAlive(any) { … } var cgoAlwaysFalse … var cgo_yield … func cgoNoCallback(v bool) { … }