From 354bbdb6bac8630e8f3e14d85ce9451eca8cf2a8 Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Mon, 5 Feb 2018 15:28:59 +0000 Subject: compiler: avoid negative zero in float constants Check for negative numbers with very small magnitudes that will round to negative zero, and force them to positive zero instead. This implements the spec clarification in https://golang.org/cl/14727. The test is in https://golang.org/cl/91895. Fixes golang/go#12621 Reviewed-on: https://go-review.googlesource.com/91915 From-SVN: r257390 --- gcc/go/gofrontend/expressions.h | 3 +++ 1 file changed, 3 insertions(+) (limited to 'gcc/go/gofrontend/expressions.h') diff --git a/gcc/go/gofrontend/expressions.h b/gcc/go/gofrontend/expressions.h index d16a284..3acaeb2 100644 --- a/gcc/go/gofrontend/expressions.h +++ b/gcc/go/gofrontend/expressions.h @@ -4220,6 +4220,9 @@ class Numeric_constant bool check_complex_type(Complex_type*, bool, Location); + static bool + is_float_zero(const mpfr_t, int bits); + // The kinds of constants. enum Classification { -- cgit v1.1