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.
This commit is contained in:
Ian Lance Taylor 2020-12-21 16:17:23 -08:00
parent 1a5e728a54
commit 03ea48ff27

View file

@ -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 ();