blob: 5be3abd2f508e64d2af4d159e73cb9982a4167c2 [file] [log] [blame]
Patrice Arruda7f4776e2020-06-25 11:55:41 -07001// run
2
3// Copyright 2019 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// Check that deferring a nil function causes a proper
8// panic when the deferred function is invoked (not
9// when the function is deferred).
10// See Issue #8047 and #34926.
11
12package main
13
14var x = 0
15
16func main() {
17 defer func() {
18 err := recover()
19 if err == nil {
20 panic("did not panic")
21 }
22 if x != 1 {
23 panic("FAIL")
24 }
25 }()
26 f()
27}
28
29func f() {
30 var nilf func()
31 defer nilf()
32 x = 1
33}