summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gfortran.fortran-torture/execute/intrinsic_spacing.f90
blob: 24b31dac2a661451764f05fabdff62d1b4622d93 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
!Program to test SPACING intrinsic function.

program test_spacing
  call test_real4(3.0)
  call test_real4(33.0)
  call test_real4(-3.)
  call test_real4(0.0)
  call test_real8(0.0_8)
  call test_real8(3.0_8)
  call test_real8(33.0_8)
  call test_real8(-33._8)
end
subroutine test_real4(orig)
  real x,y,t,orig
  integer p
  x = orig
  p = 24
  y = 2.0 ** (exponent (x) - p)
  t = tiny(x)
  x = spacing(x)
  if ((abs (x - y) .gt. abs(x * 1e-6)) &
    .and. (abs (x - t) .gt. abs(x * 1e-6)))call abort
end

subroutine test_real8(orig)
  real*8 x,y,t,orig
  integer p
  x = orig
  p = 53
  y = 2.0 ** (exponent (x) - p)
  t = tiny (x)
  x = spacing(x)
  if ((abs (x - y) .gt. abs(x * 1e-6)) &
    .and. (abs (x - t) .gt. abs(x * 1e-6)))call abort
end