view gcc/testsuite/gfortran.dg/round_1.f03 @ 118:fd00160c1b76

ifdef TARGET_64BIT
author mir3636
date Tue, 27 Feb 2018 15:01:35 +0900
parents 04ced10e8804
children 84e7813d76e9
line wrap: on
line source

! { dg-do run }
! PR35962 Implement F2003 rounding modes.
! Test case prepared by Jerry DeLisle  <jvdelisle@gcc.gnu.org>
character(11) :: fmt(7)
character(80) :: line
integer :: i
fmt = (/'(RU,6F10.1)', '(RD,6F10.1)', '(RZ,6F10.1)', &
        '(RN,6F10.2)', '(RC,6F10.2)', '(RP,6F10.1)', &
        '(SP,6F10.1)' /)
do i = 1, 7
   !print fmt(i), 1.20, 1.22, 1.25, 1.27, 1.30, 1.125
end do
write(line, fmt(1)) 1.20, 1.22, 1.25, 1.27, 1.30, 1.125
if (line.ne."       1.3       1.3       1.3       1.3       1.3       1.2") call abort
write(line, fmt(2)) 1.20, 1.22, 1.25, 1.27, 1.30, 1.125
if (line.ne."       1.2       1.2       1.2       1.2       1.2       1.1") call abort
write(line, fmt(3)) 1.20, 1.22, 1.25, 1.27, 1.30, 1.125
if (line.ne."       1.2       1.2       1.2       1.2       1.2       1.1") call abort
write(line, fmt(4)) 1.20, 1.22, 1.25, 1.27, 1.30, 1.125
if (line.ne."      1.20      1.22      1.25      1.27      1.30      1.12") call abort
write(line, fmt(5)) 1.20, 1.22, 1.25, 1.27, 1.30, 1.125
if (line.ne."      1.20      1.22      1.25      1.27      1.30      1.13") call abort
write(line, fmt(6)) 1.20, 1.22, 1.250001, 1.27, 1.30, 1.125
if (line.ne."       1.2       1.2       1.3       1.3       1.3       1.1") call abort
write(line, fmt(7)) 1.20, 1.22, 1.250001, 1.27, 1.30, 1.125
if (line.ne."      +1.2      +1.2      +1.3      +1.3      +1.3      +1.1") call abort

end