// run // Copyright 2014 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 8047. Stack copier shouldn't crash if there // is a nil defer. package main func stackit(n int) { if n == 0 { return } stackit(n - 1) } func main() { defer func() { // catch & ignore panic from nil defer below err := recover() if err == nil { panic("defer of nil func didn't panic") } }() defer ((func())(nil))() stackit(1000) }