(root)/
gcc-13.2.0/
gcc/
testsuite/
gfortran.fortran-torture/
execute/
entry_7.f90
! Test alternate entry points for functions when the result types
! of all entry points match

	function f1 (a)
	integer a, b
	integer, pointer :: f1, e1
	allocate (f1)
	f1 = 15 + a
	return
	entry e1 (b)
	allocate (e1)
	e1 = 42 + b
	end function
	function f2 ()
	real, pointer :: f2, e2
	entry e2 ()
	allocate (e2)
	e2 = 45
	end function
	function f3 ()
	double precision, pointer :: f3, e3
	entry e3 ()
	allocate (f3)
	f3 = 47
	end function
	function f4 (a) result (r)
	double precision a, b
	double precision, pointer :: r, s
	allocate (r)
	r = 15 + a
	return
	entry e4 (b) result (s)
	allocate (s)
	s = 42 + b
	end function
	function f5 () result (r)
	integer, pointer :: r, s
	entry e5 () result (s)
	allocate (r)
	r = 45
	end function
	function f6 () result (r)
	real, pointer :: r, s
	entry e6 () result (s)
	allocate (s)
	s = 47
	end function

	program entrytest
	interface
	function f1 (a)
	integer a
	integer, pointer :: f1
	end function
	function e1 (b)
	integer b
	integer, pointer :: e1
	end function
	function f2 ()
	real, pointer :: f2
	end function
	function e2 ()
	real, pointer :: e2
	end function
	function f3 ()
	double precision, pointer :: f3
	end function
	function e3 ()
	double precision, pointer :: e3
	end function
	function f4 (a)
	double precision a
	double precision, pointer :: f4
	end function
	function e4 (b)
	double precision b
	double precision, pointer :: e4
	end function
	function f5 ()
	integer, pointer :: f5
	end function
	function e5 ()
	integer, pointer :: e5
	end function
	function f6 ()
	real, pointer :: f6
	end function
	function e6 ()
	real, pointer :: e6
	end function
	end interface
	double precision d
	if (f1 (6) .ne. 21) STOP 1
	if (e1 (7) .ne. 49) STOP 2
	if (f2 () .ne. 45) STOP 3
	if (e2 () .ne. 45) STOP 4
	if (f3 () .ne. 47) STOP 5
	if (e3 () .ne. 47) STOP 6
	d = 17
	if (f4 (d) .ne. 32) STOP 7
	if (e4 (d) .ne. 59) STOP 8
	if (f5 () .ne. 45) STOP 9
	if (e5 () .ne. 45) STOP 10
	if (f6 () .ne. 47) STOP 11
	if (e6 () .ne. 47) STOP 12
	end