1// errorcheck -0 -d=nil 2 3//go:build !wasm && !aix 4 5// Copyright 2018 The Go Authors. All rights reserved. 6// Use of this source code is governed by a BSD-style 7// license that can be found in the LICENSE file. 8 9// Test that nil checks are removed. 10// Optimization is enabled. 11 12package p 13 14func f5(p *float32, q *float64, r *float32, s *float64) float64 { 15 x := float64(*p) // ERROR "removed nil check" 16 y := *q // ERROR "removed nil check" 17 *r = 7 // ERROR "removed nil check" 18 *s = 9 // ERROR "removed nil check" 19 return x + y 20} 21 22type T struct{ b [29]byte } 23 24func f6(p, q *T) { 25 x := *p // ERROR "removed nil check" 26 *q = x // ERROR "removed nil check" 27} 28 29// make sure to remove nil check for memory move (issue #18003) 30func f8(t *struct{ b [8]int }) struct{ b [8]int } { 31 return *t // ERROR "removed nil check" 32} 33