/
githubmirror
/
go
Обзор
Документация
Войти
/
githubmirror
/
go
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
test/fixedbugs/issue16760.go
42 строки
796 B
zhengjianxun
fix typo in issue16760.go
23 фев 2021, 01:53
23 фев 2021, 01:53
1391d41
Код
Авторство
О чём код?
// run // Copyright 2016 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Make sure we don't start marshaling (writing to the stack) // arguments until those arguments are evaluated and known // not to unconditionally panic. If they unconditionally panic, // we write some args but never do the call. That messes up // the logic which decides how big the argout section needs to be. package main type W interface { Write([]byte) } type F func(W) func foo(f F) { defer func() { if r := recover(); r != nil { usestack(1000) } }() f(nil) } func main() { foo(func(w W) { var x []string w.Write([]byte(x[5])) }) } func usestack(n int) { if n == 0 { return } usestack(n - 1) }