annotate gcc/testsuite/gfortran.dg/large_real_kind_1.f90 @ 152:2b5abeee2509

update gcc11
author anatofuz
date Mon, 25 May 2020 07:50:57 +0900
parents 84e7813d76e9
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 ! { dg-do run }
kono
parents:
diff changeset
2 ! { dg-require-effective-target fortran_large_real }
kono
parents:
diff changeset
3
kono
parents:
diff changeset
4 module testmod
kono
parents:
diff changeset
5 integer,parameter :: k = selected_real_kind (precision (0.0_8) + 1)
kono
parents:
diff changeset
6 contains
kono
parents:
diff changeset
7 subroutine testoutput (a,b,length,f)
kono
parents:
diff changeset
8 real(kind=k),intent(in) :: a
kono
parents:
diff changeset
9 real(kind=8),intent(in) :: b
kono
parents:
diff changeset
10 integer,intent(in) :: length
kono
parents:
diff changeset
11 character(len=*),intent(in) :: f
kono
parents:
diff changeset
12
kono
parents:
diff changeset
13 character(len=length) :: ca
kono
parents:
diff changeset
14 character(len=length) :: cb
kono
parents:
diff changeset
15
kono
parents:
diff changeset
16 write (ca,f) a
kono
parents:
diff changeset
17 write (cb,f) b
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
18 if (ca /= cb) STOP 1
111
kono
parents:
diff changeset
19 end subroutine testoutput
kono
parents:
diff changeset
20
kono
parents:
diff changeset
21 subroutine outputstring (a,f,s)
kono
parents:
diff changeset
22 real(kind=k),intent(in) :: a
kono
parents:
diff changeset
23 character(len=*),intent(in) :: f
kono
parents:
diff changeset
24 character(len=*),intent(in) :: s
kono
parents:
diff changeset
25
kono
parents:
diff changeset
26 character(len=len(s)) :: c
kono
parents:
diff changeset
27
kono
parents:
diff changeset
28 write (c,f) a
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
29 if (c /= s) STOP 2
111
kono
parents:
diff changeset
30 end subroutine outputstring
kono
parents:
diff changeset
31 end module testmod
kono
parents:
diff changeset
32
kono
parents:
diff changeset
33
kono
parents:
diff changeset
34 ! Testing I/O of large real kinds (larger than kind=8)
kono
parents:
diff changeset
35 program test
kono
parents:
diff changeset
36 use testmod
kono
parents:
diff changeset
37 implicit none
kono
parents:
diff changeset
38
kono
parents:
diff changeset
39 real(kind=k) :: x
kono
parents:
diff changeset
40 character(len=20) :: c1, c2
kono
parents:
diff changeset
41
kono
parents:
diff changeset
42 call testoutput (0.0_k,0.0_8,40,'(F40.35)')
kono
parents:
diff changeset
43
kono
parents:
diff changeset
44 call testoutput (1.0_k,1.0_8,40,'(F40.35)')
kono
parents:
diff changeset
45 call testoutput (0.1_k,0.1_8,15,'(F15.10)')
kono
parents:
diff changeset
46 call testoutput (1e10_k,1e10_8,15,'(F15.10)')
kono
parents:
diff changeset
47 call testoutput (7.51e100_k,7.51e100_8,15,'(F15.10)')
kono
parents:
diff changeset
48 call testoutput (1e-10_k,1e-10_8,15,'(F15.10)')
kono
parents:
diff changeset
49 call testoutput (7.51e-100_k,7.51e-100_8,15,'(F15.10)')
kono
parents:
diff changeset
50
kono
parents:
diff changeset
51 call testoutput (-1.0_k,-1.0_8,40,'(F40.35)')
kono
parents:
diff changeset
52 call testoutput (-0.1_k,-0.1_8,15,'(F15.10)')
kono
parents:
diff changeset
53 call testoutput (-1e10_k,-1e10_8,15,'(F15.10)')
kono
parents:
diff changeset
54 call testoutput (-7.51e100_k,-7.51e100_8,15,'(F15.10)')
kono
parents:
diff changeset
55 call testoutput (-1e-10_k,-1e-10_8,15,'(F15.10)')
kono
parents:
diff changeset
56 call testoutput (-7.51e-100_k,-7.51e-100_8,15,'(F15.10)')
kono
parents:
diff changeset
57
kono
parents:
diff changeset
58 x = huge(x)
kono
parents:
diff changeset
59 call outputstring (2*x,'(F20.15)',' Infinity')
kono
parents:
diff changeset
60 call outputstring (-2*x,'(F20.15)',' -Infinity')
kono
parents:
diff changeset
61
kono
parents:
diff changeset
62 write (c1,'(G20.10E5)') x
kono
parents:
diff changeset
63 write (c2,'(G20.10E5)') -x
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
64 if (c2(1:1) /= '-') STOP 3
111
kono
parents:
diff changeset
65 c2(1:1) = ' '
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
66 if (c1 /= c2) STOP 4
111
kono
parents:
diff changeset
67
kono
parents:
diff changeset
68 x = tiny(x)
kono
parents:
diff changeset
69 call outputstring (x,'(F20.15)',' 0.000000000000000')
kono
parents:
diff changeset
70 call outputstring (-x,'(F20.15)',' -0.000000000000000')
kono
parents:
diff changeset
71
kono
parents:
diff changeset
72 write (c1,'(G20.10E5)') x
kono
parents:
diff changeset
73 write (c2,'(G20.10E5)') -x
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
74 if (c2(1:1) /= '-') STOP 5
111
kono
parents:
diff changeset
75 c2(1:1) = ' '
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
76 if (c1 /= c2) STOP 6
111
kono
parents:
diff changeset
77 end program test