This is the mail archive of the fortran@gcc.gnu.org mailing list for the GNU Fortran project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Testsuite failures with Intel OSX 10.5.0


I have been able to build gfortran on Intel OSX 10.5.0 without
trouble. However I see three failures:

(1) gfortran.dg/subref_array_pointer_2.f90, all optimization levels.
This is due to the test:

  if (any (ptr3 .ne. (/cos(1.0_4), cos(3.0_4)/))) call abort ()

where the value of 'ptr3' corresponding to cos(1.0_4) differs by
one lsb. I have run the following test on OSX 10.4 and 10.5

integer :: i, n
real(4) :: x, y
real(8) :: c
n = 24
x = acos(-1.0)/2.0**n
y = 0
do i = 1, 2**n
   c = cos(real(i*x,8))
   y =max(y, abs(c-cos(i*x))/spacing(real(c)))
end do
print *, y
end

         y          time
10.4  0.499..97     2.71s
10.5  0.84559828    1.89s

So the new library seems slightly less accurate, but faster than
the old one.  This cold not probably considered as a bug, rather
a feature. This support some whishes to have OS independent libraries.

(2) gfortran.fortran-torture/execute/intrinsic_set_exponent.f90
The failure occurs with real(4) (not 8) as shown by the following
code:

!Program to test SET_EXPONENT intrinsic function.

  real*4 x,y
  integer*4 i,n
  equivalence(x, i)

  n = -125
  x = 1024.0
  y = set_exponent (x, n)
  print *, y, n, exponent(y)

  n = -126
  y = set_exponent (x, n)
  print *, y, n, exponent(y)

  n = -148
  y = set_exponent (x, n)
  print *, y, n, exponent(y)

  n = -149
  y = set_exponent (x, n)
  print *, y, n, exponent(y)
  if ((y .ne. 0.0) .and. (exponent (y) .ne. n)) call abort()

end

which yields:

  1.17549435E-38        -125        -125
  5.87747175E-39        -126        -127
  1.40129846E-45        -148        -149
   0.0000000            -149           0

where the result of exponent is off by -1 (the value of 'y'
is correct).  This is certainly due to some changes in the
library, but it may also come from the implementation
of exponent in libgfortran(?).

(3) gfortran.dg/bind_c_coms.f90 which fails because of the warnings:

ld: warning alignment lost in merging tentative definition _f03_com2
ld: warning alignment lost in merging tentative definition _mycom
ld: warning alignment lost in merging tentative definition _mycom2
ld: warning alignment lost in merging tentative definition _single

Dominique


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]