1! { dg-do compile }
2!
3! PR 42353: [OOP] Bogus Error: Name 'vtype$...' at (1) is an ambiguous reference ...
4!
5! Original test case by Harald Anlauf <anlauf@gmx.de>
6! Modified by Janus Weil <janus@gcc.gnu.org>
7
8module concrete_vector
9  type :: trivial_vector_type
10  end type
11  class(trivial_vector_type), pointer :: this
12end module concrete_vector
13
14module concrete_gradient
15contains
16  subroutine my_to_vector (v)
17    use concrete_vector
18    class(trivial_vector_type) :: v
19    select type (v)
20    class is (trivial_vector_type)
21    end select
22  end subroutine
23end module concrete_gradient
24
25module concrete_inner_product
26  use concrete_vector
27  use concrete_gradient
28contains
29  real function my_dot_v_v (a)
30    class(trivial_vector_type) :: a
31    select type (a)
32    class is (trivial_vector_type)
33    end select
34  end function
35end module concrete_inner_product
36 
37