Home | History | Annotate | Download | only in fixedbugs
      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 }
     30