/
githubmirror
/
go
Обзор
Документация
Войти
/
githubmirror
/
go
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
test/fixedbugs/issue4066.go
37 строк
543 B
Daniel Morsing
cmd/5g, cmd/6g, cmd/8g: flush return parameters in case of panic.
04 янв 2013, 20:07
04 янв 2013, 20:07
f1e4ee3
Код
Авторство
О чём код?
// run // Copyright 2012 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. // issue 4066: return values not being spilled eagerly enough package main func main() { n := foo() if n != 2 { println(n) panic("wrong return value") } } type terr struct{} func foo() (val int) { val = 0 defer func() { if x := recover(); x != nil { _ = x.(terr) } }() for { val = 2 foo1() } panic("unreachable") } func foo1() { panic(terr{}) }