aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/reflect/all_test.go11
-rw-r--r--src/reflect/value.go14
2 files changed, 0 insertions, 25 deletions
diff --git a/src/reflect/all_test.go b/src/reflect/all_test.go
index 496d0e9241..00c18104eb 100644
--- a/src/reflect/all_test.go
+++ b/src/reflect/all_test.go
@@ -4163,17 +4163,6 @@ func TestConvert(t *testing.T) {
}
}
-func TestConvertNaNs(t *testing.T) {
- const snan uint32 = 0x7f800001
- type myFloat32 float32
- x := V(myFloat32(math.Float32frombits(snan)))
- y := x.Convert(TypeOf(float32(0)))
- z := y.Interface().(float32)
- if got := math.Float32bits(z); got != snan {
- t.Errorf("signaling nan conversion got %x, want %x", got, snan)
- }
-}
-
type ComparableStruct struct {
X int
}
diff --git a/src/reflect/value.go b/src/reflect/value.go
index d8b5d11cbd..0f5e083663 100644
--- a/src/reflect/value.go
+++ b/src/reflect/value.go
@@ -2541,14 +2541,6 @@ func makeFloat(f flag, v float64, t Type) Value {
return Value{typ, ptr, f | flagIndir | flag(typ.Kind())}
}
-// makeFloat returns a Value of type t equal to v, where t is a float32 type.
-func makeFloat32(f flag, v float32, t Type) Value {
- typ := t.common()
- ptr := unsafe_New(typ)
- *(*float32)(ptr) = v
- return Value{typ, ptr, f | flagIndir | flag(typ.Kind())}
-}
-
// makeComplex returns a Value of type t equal to v (possibly truncated to complex64),
// where t is a complex64 or complex128 type.
func makeComplex(f flag, v complex128, t Type) Value {
@@ -2621,12 +2613,6 @@ func cvtUintFloat(v Value, t Type) Value {
// convertOp: floatXX -> floatXX
func cvtFloat(v Value, t Type) Value {
- if v.Type().Kind() == Float32 && t.Kind() == Float32 {
- // Don't do any conversion if both types have underlying type float32.
- // This avoids converting to float64 and back, which will
- // convert a signaling NaN to a quiet NaN. See issue 36400.
- return makeFloat32(v.flag.ro(), *(*float32)(v.ptr), t)
- }
return makeFloat(v.flag.ro(), v.Float(), t)
}