1 ! Test alternate entry points for functions when the result types
2 ! of all entry points match
6 integer, pointer :: f1, e1
15 real, pointer :: f2, e2
21 double precision, pointer :: f3, e3
26 function f4 (a) result (r)
28 double precision, pointer :: r, s
32 entry e4 (b) result (s)
36 function f5 () result (r)
37 integer, pointer :: r, s
38 entry e5 () result (s)
42 function f6 () result (r)
44 entry e6 () result (s)
53 integer, pointer :: f1
57 integer, pointer :: e1
66 double precision, pointer :: f3
69 double precision, pointer :: e3
73 double precision, pointer :: f4
77 double precision, pointer :: e4
80 integer, pointer :: f5
83 integer, pointer :: e5
93 if (f1 (6) .ne. 21) call abort ()
94 if (e1 (7) .ne. 49) call abort ()
95 if (f2 () .ne. 45) call abort ()
96 if (e2 () .ne. 45) call abort ()
97 if (f3 () .ne. 47) call abort ()
98 if (e3 () .ne. 47) call abort ()
100 if (f4 (d) .ne. 32) call abort ()
101 if (e4 (d) .ne. 59) call abort ()
102 if (f5 () .ne. 45) call abort ()
103 if (e5 () .ne. 45) call abort ()
104 if (f6 () .ne. 47) call abort ()
105 if (e6 () .ne. 47) call abort ()