1! { dg-do compile }
2!
3! PR 45439: [OOP] SELECT TYPE bogus complaint about INTENT
4!
5! Contributed by Salvatore Filippone <sfilippone@uniroma2.it>
6
7
8module d_base_mat_mod
9
10  implicit none
11
12  type :: d_base_sparse_mat
13  contains
14    procedure, pass(a) :: mv_to_coo   => d_base_mv_to_coo
15  end type d_base_sparse_mat
16
17  interface
18    subroutine d_base_mv_to_coo(a)
19      import d_base_sparse_mat
20      class(d_base_sparse_mat), intent(inout) :: a
21    end subroutine d_base_mv_to_coo
22  end interface
23
24  type :: d_sparse_mat
25    class(d_base_sparse_mat), allocatable  :: a
26  end type d_sparse_mat
27
28contains
29
30  subroutine bug21(ax)
31    type(d_sparse_mat), intent(inout) :: ax
32    select type(aa=> ax%a)
33    class default
34      call aa%mv_to_coo()
35    end select
36  end subroutine bug21
37
38end module d_base_mat_mod
39