aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/gfortran.dg/unlimited_polymorphic_4.f03
blob: d289b69199f2bde3950343d1c3cb233d9c423b33 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
! { dg-do compile }
!
! Fix PR55763
! Contributed by Tobias Burnus  <burnus@gcc.gnu.org>
!
module mpi_f08_f
  implicit none
  abstract interface
    subroutine user_function( inoutvec )
      class(*), dimension(:), intent(inout) :: inoutvec
    end subroutine user_function
  end interface
end module

module mod_test1
  use mpi_f08_f
  implicit none
contains
  subroutine my_function( invec )   ! { dg-error "no IMPLICIT type" }
    class(*), dimension(:), intent(inout) :: inoutvec    ! { dg-error "not a DUMMY" }

    select type (inoutvec)
    type is (integer)
         inoutvec = 2*inoutvec
    end select
  end subroutine my_function
end module

module mod_test2
  use mpi_f08_f
  implicit none
contains
  subroutine my_function( inoutvec )  ! Used to produce a BOGUS ERROR
    class(*), dimension(:), intent(inout) :: inoutvec

    select type (inoutvec)
    type is (integer)
         inoutvec = 2*inoutvec
    end select
  end subroutine my_function
end module