OpenCores
URL https://opencores.org/ocsvn/openrisc_2011-10-31/openrisc_2011-10-31/trunk

Subversion Repositories openrisc_2011-10-31

[/] [openrisc/] [tags/] [gnu-src/] [gcc-4.5.1/] [gcc-4.5.1-or32-1.0rc2/] [gcc/] [testsuite/] [gfortran.dg/] [used_types_10.f90] - Diff between revs 302 and 384

Go to most recent revision | Only display areas with differences | Details | Blame | View Log

Rev 302 Rev 384
! { dg-do compile }
! { dg-do compile }
! Tests the fix for PR28959 in which interface derived types were
! Tests the fix for PR28959 in which interface derived types were
! not always being associated.
! not always being associated.
!
!
! Contributed by Salvatore Filippone  
! Contributed by Salvatore Filippone  
!
!
module derived_type_mod
module derived_type_mod
  type foo_dtype
  type foo_dtype
    integer, pointer :: v1(:)=>null()
    integer, pointer :: v1(:)=>null()
  end type foo_dtype
  end type foo_dtype
end module derived_type_mod
end module derived_type_mod
Module tools
Module tools
  interface foo_d_sub
  interface foo_d_sub
     subroutine cdalv(m, v, i, desc_a, info, flag)
     subroutine cdalv(m, v, i, desc_a, info, flag)
       use derived_type_mod
       use derived_type_mod
       Integer, intent(in)               :: m,i, v(:)
       Integer, intent(in)               :: m,i, v(:)
       integer, intent(in), optional     :: flag
       integer, intent(in), optional     :: flag
       integer, intent(out)              :: info
       integer, intent(out)              :: info
       Type(foo_dtype), intent(out)  :: desc_a
       Type(foo_dtype), intent(out)  :: desc_a
     end subroutine cdalv
     end subroutine cdalv
  end interface
  end interface
end module tools
end module tools
subroutine foo_bar(a,p,info)
subroutine foo_bar(a,p,info)
  use derived_type_mod
  use derived_type_mod
  implicit none
  implicit none
  type(foo_dtype), intent(in)            :: a
  type(foo_dtype), intent(in)            :: a
  type(foo_dtype), intent(inout)         :: p
  type(foo_dtype), intent(inout)         :: p
  integer, intent(out)                   :: info
  integer, intent(out)                   :: info
  info=0
  info=0
  call inner_sub(info)
  call inner_sub(info)
  return
  return
contains
contains
  subroutine inner_sub(info)
  subroutine inner_sub(info)
    use tools
    use tools
    implicit none
    implicit none
    integer, intent(out)   :: info
    integer, intent(out)   :: info
    integer :: i, nt,iv(10)
    integer :: i, nt,iv(10)
    i  = 0
    i  = 0
    nt = 1
    nt = 1
    call foo_d_sub(nt,iv,i,p,info,flag=1)
    call foo_d_sub(nt,iv,i,p,info,flag=1)
    return
    return
  end subroutine inner_sub
  end subroutine inner_sub
end subroutine foo_bar
end subroutine foo_bar
! { dg-final { cleanup-modules "derived_type_mod tools" } }
! { dg-final { cleanup-modules "derived_type_mod tools" } }
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.