From bd7c1f1fb3176a8f926ca03f9342d83353b05f83 Mon Sep 17 00:00:00 2001 From: Robert Griesemer Date: Thu, 21 May 2015 18:23:51 -0700 Subject: [PATCH] cmd/compile/internal/gc: correctly use Float32 in mpgetfltN This resolves the compiler part of issue #10321. Change-Id: I44b9909f992b37dd34b1c5292decd12de3d3a65e Reviewed-on: https://go-review.googlesource.com/10355 Reviewed-by: Alan Donovan --- src/cmd/compile/internal/gc/mparith3.go | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/src/cmd/compile/internal/gc/mparith3.go b/src/cmd/compile/internal/gc/mparith3.go index 181e91c87d..58c129fcca 100644 --- a/src/cmd/compile/internal/gc/mparith3.go +++ b/src/cmd/compile/internal/gc/mparith3.go @@ -111,15 +111,8 @@ func mpgetfltN(a *Mpflt, prec int, bias int) float64 { case 53: x, _ = a.Val.Float64() case 24: - // We should be using a.Val.Float32() here but that seems incorrect - // for certain denormal values (all.bash fails). The current code - // appears to work for all existing test cases, though there ought - // to be issues with denormal numbers that are incorrectly rounded. - // TODO(gri) replace with a.Val.Float32() once correctly working - // See also: https://github.com/golang/go/issues/10321 - var t Mpflt - t.Val.SetPrec(24).Set(&a.Val) - x, _ = t.Val.Float64() + x32, _ := a.Val.Float32() + x = float64(x32) default: panic("unreachable") } -- 2.48.1