Message ID | 20160825221328.GA96344@troutmask.apl.washington.edu |
---|---|
State | New |
Headers | show |
On Aug 26 2016, Steve Kargl <sgk@troutmask.apl.washington.edu> wrote: > 2016-08-25 Steven G. Kargl <kargl@gcc.gnu.org> > > PR fortran/77372 > gfortran.dg/pr77372.f90: New test. FAIL: gfortran.dg/pr77372.f90 -O (test for excess errors) Excess errors: /usr/local/gcc/gcc-20160829/gcc/testsuite/gfortran.dg/pr77372.f90:3:7: Fatal Error: Can't open module file 'ieee_arithmetic.mod' for reading at (1): No such file or directory compilation terminated. Andreas.
On Mon, Aug 29, 2016 at 11:10:41AM +0200, Andreas Schwab wrote: > On Aug 26 2016, Steve Kargl <sgk@troutmask.apl.washington.edu> wrote: > > > 2016-08-25 Steven G. Kargl <kargl@gcc.gnu.org> > > > > PR fortran/77372 > > gfortran.dg/pr77372.f90: New test. > > FAIL: gfortran.dg/pr77372.f90 -O (test for excess errors) > Excess errors: > /usr/local/gcc/gcc-20160829/gcc/testsuite/gfortran.dg/pr77372.f90:3:7: Fatal Error: Can't open module file 'ieee_arithmetic.mod' for reading at (1): No such file or directory > compilation terminated. > Does it FAIL if you move the test into the gfortran.dg/ieee directory?
On Aug 29 2016, Steve Kargl <sgk@troutmask.apl.washington.edu> wrote: > On Mon, Aug 29, 2016 at 11:10:41AM +0200, Andreas Schwab wrote: >> On Aug 26 2016, Steve Kargl <sgk@troutmask.apl.washington.edu> wrote: >> >> > 2016-08-25 Steven G. Kargl <kargl@gcc.gnu.org> >> > >> > PR fortran/77372 >> > gfortran.dg/pr77372.f90: New test. >> >> FAIL: gfortran.dg/pr77372.f90 -O (test for excess errors) >> Excess errors: >> /usr/local/gcc/gcc-20160829/gcc/testsuite/gfortran.dg/pr77372.f90:3:7: Fatal Error: Can't open module file 'ieee_arithmetic.mod' for reading at (1): No such file or directory >> compilation terminated. >> > > Does it FAIL if you move the test into the gfortran.dg/ieee > directory? With that change it passes. Andreas.
On Mon, Aug 29, 2016 at 05:09:59PM +0200, Andreas Schwab wrote: > On Aug 29 2016, Steve Kargl <sgk@troutmask.apl.washington.edu> wrote: > > > On Mon, Aug 29, 2016 at 11:10:41AM +0200, Andreas Schwab wrote: > >> On Aug 26 2016, Steve Kargl <sgk@troutmask.apl.washington.edu> wrote: > >> > >> > 2016-08-25 Steven G. Kargl <kargl@gcc.gnu.org> > >> > > >> > PR fortran/77372 > >> > gfortran.dg/pr77372.f90: New test. > >> > >> FAIL: gfortran.dg/pr77372.f90 -O (test for excess errors) > >> Excess errors: > >> /usr/local/gcc/gcc-20160829/gcc/testsuite/gfortran.dg/pr77372.f90:3:7: Fatal Error: Can't open module file 'ieee_arithmetic.mod' for reading at (1): No such file or directory > >> compilation terminated. > >> > > > > Does it FAIL if you move the test into the gfortran.dg/ieee > > directory? > > With that change it passes. Thanks for checking. Seems that some targets need ieee.exp to set up the path correctly. I'll move the test shortly.
Index: gcc/fortran/simplify.c =================================================================== --- gcc/fortran/simplify.c (revision 239762) +++ gcc/fortran/simplify.c (working copy) @@ -7044,9 +7044,19 @@ gfc_simplify_compiler_version (void) gfc_expr * simplify_ieee_selected_real_kind (gfc_expr *expr) { - gfc_actual_arglist *arg = expr->value.function.actual; - gfc_expr *p = arg->expr, *q = arg->next->expr, - *rdx = arg->next->next->expr; + gfc_actual_arglist *arg; + gfc_expr *p = NULL, *q = NULL, *rdx = NULL; + + arg = expr->value.function.actual; + if (arg->expr) + p = arg->expr; + if (arg->next) + { + if (arg->next->expr) + q = arg->next->expr; + if (arg->next->next && arg->next->next->expr) + rdx = arg->next->next->expr; + } /* Currently, if IEEE is supported and this module is built, it means all our floating-point types conform to IEEE. Hence, we simply handle Index: gcc/testsuite/gfortran.dg/pr77372.f90 =================================================================== --- gcc/testsuite/gfortran.dg/pr77372.f90 (nonexistent) +++ gcc/testsuite/gfortran.dg/pr77372.f90 (working copy) @@ -0,0 +1,7 @@ +! { dg-do compile } +program p + use ieee_arithmetic + real(kind=ieee_selected_real_kind(10_1)) :: z1 + real(kind=ieee_selected_real_kind(10_2)) :: z2 + real(kind=ieee_selected_real_kind(10_4)) :: z4 +end