// Copyright 2020 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 a import ( "reflect" "unsafe" ) // Explicitly allocating a variable of type reflect.SliceHeader. func _(p *byte, n int) []byte { var sh reflect.SliceHeader sh.Data = uintptr(unsafe.Pointer(p)) sh.Len = n sh.Cap = n return *(*[]byte)(unsafe.Pointer(&sh)) // want "possible misuse of reflect.SliceHeader" } // Implicitly allocating a variable of type reflect.SliceHeader. func _(p *byte, n int) []byte { return *(*[]byte)(unsafe.Pointer(&reflect.SliceHeader{ // want "possible misuse of reflect.SliceHeader" Data: uintptr(unsafe.Pointer(p)), Len: n, Cap: n, })) } // Use reflect.StringHeader as a composite literal value. func _(p *byte, n int) []byte { var res []byte *(*reflect.StringHeader)(unsafe.Pointer(&res)) = reflect.StringHeader{ // want "possible misuse of reflect.StringHeader" Data: uintptr(unsafe.Pointer(p)), Len: n, } return res } func _() { // don't crash when obj.Pkg() == nil var err error _ = &err }