func EnableNoWriteBarrierRecCheck() { … } func NoWriteBarrierRecCheck() { … } var nowritebarrierrecCheck … type nowritebarrierrecChecker … type nowritebarrierrecCall … // newNowritebarrierrecChecker creates a nowritebarrierrecChecker. It // must be called before walk. func newNowritebarrierrecChecker() *nowritebarrierrecChecker { … } func (c *nowritebarrierrecChecker) findExtraCalls(nn ir.Node) { … } // recordCall records a call from ODCLFUNC node "from", to function // symbol "to" at position pos. // // This should be done as late as possible during compilation to // capture precise call graphs. The target of the call is an LSym // because that's all we know after we start SSA. // // This can be called concurrently for different from Nodes. func (c *nowritebarrierrecChecker) recordCall(fn *ir.Func, to *obj.LSym, pos src.XPos) { … } func (c *nowritebarrierrecChecker) check() { … }