Fortran and /name=lower on X86 gives wrong results at run time
Posted: Thu Nov 16, 2023 9:17 am
Hi I get this:
Obvious the right result is 2 but I get 2 different wrong results if compiled wih /name=lower.
Jouk
Code: Select all
rumba-jj) f90/vers
VSI Fortran x86-64 X8.5-007 (GEM 50XBD) on OpenVMS x86_64 V9.2-1
rumba-jj) ty test.f90
program test
real aap
integer ceil
aap =11.0
write(*,*) ceil( aap / 8.0 )
end
rumba-jj) ty ceil.f90
integer function ceil( realvar )
!
ceil = int( realvar )
if ( float( ceil ) .ne. realvar ) then
if ( realvar .gt. 0.0 ) then
ceil = ceil + 1
else
ceil = ceil - 1
end if
end if
!
return
end
rumba-jj) f90 test.f90
rumba-jj) f90 ceil.f90
rumba-jj) link test,ceil
rumba-jj) run test
2
rumba-jj) f90/name=lower test.f90
rumba-jj) f90/name=lower ceil.f90
rumba-jj) link test,ceil
rumba-jj) run test
0
rumba-jj) f90/name=lower/noop test.f90
rumba-jj) f90/name=lower/noop ceil.f90
rumba-jj) link test,ceil
rumba-jj) run test
1068498945
Obvious the right result is 2 but I get 2 different wrong results if compiled wih /name=lower.
Jouk