Reduced from a bug in cmd/doc found by @robpike.
/cc @khr @dr2chase
The -ssa=0 behavior is correct: the program should print 1, not 0.
$ go run -gcflags -ssa=0 /tmp/x.go
1
$ go run /tmp/x.go
0
$ cat /tmp/x.go
package main
func main() {
println(f())
}
func f() (x int) {
for {
defer func() {
recover()
x = 1
}()
panic(1)
}
}
$