summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gfortran.dg/generic_22.f03
blob: 1da49dee923a30f79a9e12793be0f2afbaba17a5 (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
! { dg-do compile }
! Test the fix for PR43492, in which the generic call caused and ICE.
!
! Contributed by Salvatore Filippone <sfilippone@uniroma2.it>
!
module base_mod
  
  type  :: base_mat
    integer, private     :: m, n
  contains 
    procedure, pass(a) :: transp1 => base_transp1
    generic, public    :: transp => transp1
    procedure, pass(a) :: transc1 => base_transc1
    generic, public    :: transc => transc1
  end type base_mat

contains

  subroutine base_transp1(a)
    implicit none 
    
    class(base_mat), intent(inout) :: a
    integer :: itmp
    itmp        = a%m
    a%m         = a%n
    a%n         = itmp
  end subroutine base_transp1
  subroutine base_transc1(a)
    implicit none 
    class(base_mat), intent(inout) :: a
    
    call a%transp() 
!!$    call a%transp1() 
  end subroutine base_transc1


end module base_mod
! { dg-final { cleanup-modules "m" } }