From: Ian Lance Taylor Date: Tue, 22 Dec 2020 00:17:23 +0000 (-0800) Subject: Go frontend: ensure mpfr exponent range is large enough for Go X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=03ea48ff27fd40b04b148f7006a02513a887ad0d;p=gcc.git Go frontend: ensure mpfr exponent range is large enough for Go PR go/98402 * go-lang.c (go_langhook_init): Force MPFR exponent range to be large enough to support Go constants. --- diff --git a/gcc/go/go-lang.c b/gcc/go/go-lang.c index 08c1f38a2c1..9c0e7af7b84 100644 --- a/gcc/go/go-lang.c +++ b/gcc/go/go-lang.c @@ -131,6 +131,16 @@ go_langhook_init (void) eventually be controllable by a command line option. */ mpfr_set_default_prec (256); + /* If necessary, override GCC's choice of minimum and maximum + exponents. This should only affect GCC middle-end + compilation-time, not correctness. */ + mpfr_exp_t exp = mpfr_get_emax (); + if (exp < (1 << 16) - 1) + mpfr_set_emax ((1 << 16) - 1); + exp = mpfr_get_emin (); + if (exp > - ((1 << 16) - 1)) + mpfr_set_emin (- ((1 << 16) - 1)); + /* Go uses exceptions. */ using_eh_for_cleanups ();