diff options
Diffstat (limited to 'gcc/testsuite/gfortran.dg/large_real_kind_3.F90')
-rw-r--r-- | gcc/testsuite/gfortran.dg/large_real_kind_3.F90 | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.dg/large_real_kind_3.F90 b/gcc/testsuite/gfortran.dg/large_real_kind_3.F90 new file mode 100644 index 000000000..0660b497a --- /dev/null +++ b/gcc/testsuite/gfortran.dg/large_real_kind_3.F90 @@ -0,0 +1,24 @@ +! { dg-do run } +! { dg-require-effective-target fortran_large_real } +! { dg-xfail-if "" { "*-*-freebsd*" } { "*" } { "" } } + +! Testing erf and erfc library calls on large real kinds (larger than kind=8) + implicit none + + integer,parameter :: k = selected_real_kind (precision (0.0_8) + 1) + real(8),parameter :: eps = 1e-8 + + real(kind=k) :: x + real(8) :: y + +#define TEST_FUNCTION(func,val) \ + x = val ;\ + y = x ;\ + x = func (x) ;\ + y = func (y) ;\ + if (abs((y - x) / y) > eps) call abort + + TEST_FUNCTION(erf,1.45123231) + TEST_FUNCTION(erfc,-0.123789) + +end |