On Tue, Oct 11, 2016 at 11:10:13AM -0700, Jerry DeLisle wrote:
> 
> diff --git a/gcc/fortran/simplify.c b/gcc/fortran/simplify.c
> index bf60f747..18135d2f 100644
> --- a/gcc/fortran/simplify.c
> +++ b/gcc/fortran/simplify.c
> @@ -1768,11 +1768,13 @@ degrees_f (mpfr_t x, mp_rnd_t rnd_mode)
>   static void
>   radians_f (mpfr_t x, mp_rnd_t rnd_mode)
>   {
> -    mpfr_t tmp;
> +    mpfr_t tmp, modtmp;
>       mpfr_init (tmp);
> +    mpfr_init (modtmp);

Delete modtmp.

> 
>       /* Set x = x % 360 to avoid offsets with large angles.  */
> -    mpfr_fmod_d (tmp, x, 360.0, rnd_mode);
> +    mpfr_set_d (modtmp, 360.0, GFC_RND_MODE);

Change this to 

   mpfr_set_ui(tmp, 360, rnd_mode);

> +    mpfr_fmod (tmp, x, modtmp, rnd_mode);

Change this to 

    mpfr_fmod (tmp, x, tmp, rnd_mode);

> 
>       /* Set x = x * pi.  */
>       mpfr_const_pi (tmp, rnd_mode);
> @@ -1782,6 +1784,7 @@ radians_f (mpfr_t x, mp_rnd_t rnd_mode)
>       mpfr_div_d (x, x, 180.0, rnd_mode);
> 
>       mpfr_clear (tmp);
> +    mpfr_clear (modtmp);

Delete this.

>   }

-- 
Steve

Reply via email to