On 2016.10.11 at 07:26 -0400, Fritz Reese wrote: > On Mon, Oct 10, 2016 at 3:56 PM, Steve Kargl > <s...@troutmask.apl.washington.edu> wrote: > ... > > There are a few small clean-up that can be > > done. For example, > > > > +static gfc_expr * > > +get_radians (gfc_expr *deg) > > +{ > > + mpfr_t tmp; > ... > > the tmp variable is unneeded in the above. Converting the double > > precision 180.0 to mpfr_t and then dividing is probably slower > > than just dividing by 180. > > > > + /* Set factor = pi / 180. */ > > + factor = gfc_get_constant_expr (deg->ts.type, deg->ts.kind, °->where); > > + mpfr_const_pi (factor->value.real, GFC_RND_MODE); > > + mpfr_div_ui (factor->value.real, factor->value.real, 180, GFC_RND_MODE); > > > ... > > Good catch, fixed and committed r240989. Many thanks to you and Jerry.
This patch breaks bootstrap: ../../gcc/gcc/fortran/iresolve.c: In function ‘gfc_expr* get_degrees(gfc_expr*)’: ../../gcc/gcc/fortran/iresolve.c:2728:14: error: ‘tmp’ was not declared in this scope mpfr_init (tmp); Even declaring the variable doesn't help: ../../gcc/gcc/fortran/simplify.c: In function ‘void radians_f(__mpfr_struct*, mpfr_rnd_t)’: ../../gcc/gcc/fortran/simplify.c:1775:5: error: ‘mpfr_fmod_d’ was not declared in this scope mpfr_fmod_d (tmp, x, 360.0, rnd_mode); ^~~~~~~~~~~ -- Markus