github.com/yanyiwu/go@v0.0.0-20150106053140-03d6637dbb7f/test/fixedbugs/issue8047.go (about) 1 // run 2 3 // Copyright 2014 The Go Authors. All rights reserved. 4 // Use of this source code is governed by a BSD-style 5 // license that can be found in the LICENSE file. 6 7 // Issue 8047. Stack copier shouldn't crash if there 8 // is a nil defer. 9 10 package main 11 12 func stackit(n int) { 13 if n == 0 { 14 return 15 } 16 stackit(n - 1) 17 } 18 19 func main() { 20 defer func() { 21 // catch & ignore panic from nil defer below 22 err := recover() 23 if err == nil { 24 panic("defer of nil func didn't panic") 25 } 26 }() 27 defer ((func())(nil))() 28 stackit(1000) 29 }