1 ! Test alternate entry points for functions when the result types
2 ! of all entry points match
4 function f1 (str
, i
, j
) result (r
)
5 character str
*(*), r1
*(*), r2
*(*), r
*(*)
9 entry e1 (str
, i
, j
) result (r1
)
11 entry e2 (str
, i
, j
) result (r2
)
16 function f3 () result (r
)
17 character r3
*5, r4
*5, r
*5
21 entry e3 (i
) result (r3
)
22 entry e4 (i
) result (r4
)
31 character f1
*16, e1
*16, e2
*16, str
*16, ret
*16
32 character f3
*5, e3
*5, e4
*5
38 if ((i
.ne
. 2) .or
. (j
.ne
. 6)) call abort ()
39 if (ret
.ne
. 'BCDEF') call abort ()
41 if ((i
.ne
. 3) .or
. (j
.ne
. 5)) call abort ()
42 if (ret
.ne
. 'CDE') call abort ()
44 if ((i
.ne
. 3) .or
. (j
.ne
. 4)) call abort ()
45 if (ret
.ne
. 'CD') call abort ()
46 if (f3 () .ne
. 'ABCDE') call abort ()
47 if (e3 (1) .ne
. 'abcde') call abort ()
48 if (e4 (1) .ne
. 'abcde') call abort ()
49 if (e3 (0) .ne
. 'UVWXY') call abort ()
50 if (e4 (0) .ne
. 'UVWXY') call abort ()