cmp/compare.go
func makeAddressable(v reflect.Value) reflect.Value {
	if v.CanAddr() {
		return v
	}
	vc := reflect.New(v.Type()).Elem()
	vc.Set(v)
	return vc
}
func makeAddressable(v reflect.Value) reflect.Value {
	if v.CanAddr() {
		return v
	}
	vc := reflect.New(v.Type()).Elem()
	vc.Set(v)
	return vc
}
func makeAddressable ( v reflect . Value ) reflect . Value { if v . CanAddr ( ) { return v } vc := reflect . New ( v . Type ( ) ) . Elem ( ) vc . Set ( v ) return vc }
// makeAddressable returns a value that is always addressable.
// It returns the input verbatim if it is already addressable,
// otherwise it creates a new value and returns an addressable copy.
makeAddressable returns a value that is always addressable . It returns the input verbatim if it is already addressable otherwise it creates a new value and returns an addressable copy .