1! { dg-do compile }
2! Test the fix for PR43492, in which the generic call caused and ICE.
3!
4! Contributed by Salvatore Filippone <sfilippone@uniroma2.it>
5!
6module base_mod
7  
8  type  :: base_mat
9    integer, private     :: m, n
10  contains 
11    procedure, pass(a) :: transp1 => base_transp1
12    generic, public    :: transp => transp1
13    procedure, pass(a) :: transc1 => base_transc1
14    generic, public    :: transc => transc1
15  end type base_mat
16
17contains
18
19  subroutine base_transp1(a)
20    implicit none 
21    
22    class(base_mat), intent(inout) :: a
23    integer :: itmp
24    itmp        = a%m
25    a%m         = a%n
26    a%n         = itmp
27  end subroutine base_transp1
28  subroutine base_transc1(a)
29    implicit none 
30    class(base_mat), intent(inout) :: a
31    
32    call a%transp() 
33!!$    call a%transp1() 
34  end subroutine base_transc1
35
36
37end module base_mod
38