blob: f775d20dd93be079ed12bad3a9dd7085f8b70d8d [file] [log] [blame]
! Test alternate entry points for functions when the result types
! of all entry points don't match
integer function f1 (a)
integer a, b
double precision e1
f1 = 15 + a
return
entry e1 (b)
e1 = 42 + b
end function
complex function f2 (a)
integer a
logical e2
entry e2 (a)
if (a .gt. 0) then
e2 = a .lt. 46
else
f2 = 45
endif
end function
function f3 (a) result (r)
integer a, b
real r
logical s
complex c
r = 15 + a
return
entry e3 (b) result (s)
s = b .eq. 42
return
entry g3 (b) result (c)
c = b + 11
end function
function f4 (a) result (r)
logical r
integer a, s
double precision t
entry e4 (a) result (s)
entry g4 (a) result (t)
r = a .lt. 0
if (a .eq. 0) s = 16 + a
if (a .gt. 0) t = 17 + a
end function
program entrytest
integer f1, e4
real f3
double precision e1, g4
logical e2, e3, f4
complex f2, g3
if (f1 (6) .ne. 21) STOP 1
if (e1 (7) .ne. 49) STOP 2
if (f2 (0) .ne. 45) STOP 3
if (.not. e2 (45)) STOP 4
if (e2 (46)) STOP 5
if (f3 (17) .ne. 32) STOP 6
if (.not. e3 (42)) STOP 7
if (e3 (41)) STOP 8
if (g3 (12) .ne. 23) STOP 9
if (.not. f4 (-5)) STOP 10
if (e4 (0) .ne. 16) STOP 11
if (g4 (2) .ne. 19) STOP 12
end