mirror of
https://github.com/golang/go
synced 2025-04-03 23:25:20 +00:00
Nil checks need to stay in their original blocks. They cannot be moved to a following conditionally-executed block. Fixes #72860 Change-Id: Ic2d66cdf030357d91f8a716a004152ba4c016f77 Reviewed-on: https://go-review.googlesource.com/c/go/+/657715 Reviewed-by: Cuong Manh Le <cuong.manhle.vn@gmail.com> Reviewed-by: Keith Randall <khr@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Cherry Mui <cherryyz@google.com>
25 lines
411 B
Go
25 lines
411 B
Go
// run
|
|
|
|
// Copyright 2025 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.
|
|
|
|
package main
|
|
|
|
//go:noinline
|
|
func f(p *int, b bool) int {
|
|
valid := *p >= 0
|
|
if !b || !valid {
|
|
return 5
|
|
}
|
|
return 6
|
|
}
|
|
func main() {
|
|
defer func() {
|
|
if e := recover(); e == nil {
|
|
println("should have panicked")
|
|
}
|
|
}()
|
|
f(nil, false)
|
|
}
|