URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Subversion Repositories openrisc
[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [gfortran.dg/] [func_derived_2.f90] - Rev 694
Compare with Previous | Blame | View Log
! { dg-do run }
! This tests the "virtual fix" for PR19561, where functions returning
! pointers to derived types were not generating correct code. This
! testcase is based on a simplified example in the PR discussion.
!
! Submitted by Paul Thomas pault@gcc.gnu.org
! Slightly extended by Tobias Schlüter
module mpoint
type :: mytype
integer :: i
end type mytype
contains
function get (a) result (b)
type (mytype), target :: a
type (mytype), pointer :: b
b => a
end function get
function get2 (a)
type (mytype), target :: a
type (mytype), pointer :: get2
get2 => a
end function get2
end module mpoint
program func_derived_2
use mpoint
type (mytype), target :: x
type (mytype), pointer :: y
x = mytype (42)
y => get (x)
if (y%i.ne.42) call abort ()
x = mytype (112)
y => get2 (x)
if (y%i.ne.112) call abort ()
end program func_derived_2
! { dg-final { cleanup-modules "mpoint" } }