URL
https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk
Subversion Repositories openrisc_me
[/] [openrisc/] [trunk/] [gnu-src/] [gcc-4.5.1/] [gcc/] [testsuite/] [gfortran.dg/] [interface_derived_type_1.f90] - Rev 302
Compare with Previous | Blame | View Log
! { dg-do compile }
! Test the fix for PR20903, in which derived types could be host associated within
! interface bodies.
!
! Contributed by Joost VandeVondele <jv244@cam.ac.uk>
!
module test
implicit none
type fcnparms
integer :: i
end type fcnparms
contains
subroutine sim_1(func1,params)
interface
function func1(fparams)
type(fcnparms) :: fparams ! { dg-error "not been declared within the interface" }
real :: func1
end function func1
end interface
type(fcnparms) :: params
end subroutine sim_1
subroutine sim_2(func2,params)
interface
function func2(fparams) ! This is OK because of the derived type decl.
type fcnparms
integer :: i
end type fcnparms
type(fcnparms) :: fparams
real :: func2
end function func2
end interface
type(fcnparms) :: params ! This is OK, of course
end subroutine sim_2
end module test
module type_decl
implicit none
type fcnparms
integer :: i
end type fcnparms
end module type_decl
subroutine sim_3(func3,params)
use type_decl
interface
function func3(fparams)
use type_decl
type(fcnparms) :: fparams ! This is OK - use associated
real :: func3
end function func3
end interface
type(fcnparms) :: params ! -ditto-
end subroutine sim_3
! { dg-final { cleanup-modules "test type_decl" } }