nilptr5.go (go1.19.src) | : | nilptr5.go (go1.19.1.src) | ||
---|---|---|---|---|
// errorcheck -0 -d=nil | // errorcheck -0 -d=nil | |||
// +build !wasm | //go:build !wasm && !aix | |||
// +build !aix | // +build !wasm,!aix | |||
// Copyright 2018 The Go Authors. All rights reserved. | // Copyright 2018 The Go Authors. All rights reserved. | |||
// Use of this source code is governed by a BSD-style | // Use of this source code is governed by a BSD-style | |||
// license that can be found in the LICENSE file. | // license that can be found in the LICENSE file. | |||
// Test that nil checks are removed. | // Test that nil checks are removed. | |||
// Optimization is enabled. | // Optimization is enabled. | |||
package p | package p | |||
func f5(p *float32, q *float64, r *float32, s *float64) float64 { | func f5(p *float32, q *float64, r *float32, s *float64) float64 { | |||
x := float64(*p) // ERROR "removed nil check" | x := float64(*p) // ERROR "removed nil check" | |||
y := *q // ERROR "removed nil check" | y := *q // ERROR "removed nil check" | |||
*r = 7 // ERROR "removed nil check" | *r = 7 // ERROR "removed nil check" | |||
*s = 9 // ERROR "removed nil check" | *s = 9 // ERROR "removed nil check" | |||
return x + y | return x + y | |||
} | } | |||
type T [29]byte | type T struct{ b [29]byte } | |||
func f6(p, q *T) { | func f6(p, q *T) { | |||
x := *p // ERROR "removed nil check" | x := *p // ERROR "removed nil check" | |||
*q = x // ERROR "removed nil check" | *q = x // ERROR "removed nil check" | |||
} | } | |||
// make sure to remove nil check for memory move (issue #18003) | // make sure to remove nil check for memory move (issue #18003) | |||
func f8(t *[8]int) [8]int { | func f8(t *struct{ b [8]int }) struct{ b [8]int } { | |||
return *t // ERROR "removed nil check" | return *t // ERROR "removed nil check" | |||
} | } | |||
End of changes. 3 change blocks. | ||||
4 lines changed or deleted | 4 lines changed or added |