// initStackTemp appends statements to init to initialize the given // temporary variable to val, and then returns the expression &tmp. func initStackTemp(init *ir.Nodes, tmp *ir.Name, val ir.Node) *ir.AddrExpr { … } // stackTempAddr returns the expression &tmp, where tmp is a newly // allocated temporary variable of the given type. Statements to // zero-initialize tmp are appended to init. func stackTempAddr(init *ir.Nodes, typ *types.Type) *ir.AddrExpr { … } // stackBufAddr returns the expression &tmp, where tmp is a newly // allocated temporary variable of type [len]elem. This variable is // initialized, and elem must not contain pointers. func stackBufAddr(len int64, elem *types.Type) *ir.AddrExpr { … }