1! { dg-do run } 2 3! PR fortran/37588 4! This test used to not resolve the GENERIC binding. 5 6! Contributed by Salvatore Filippone <sfilippone@uniroma2.it> 7 8module bar_mod 9 10 type foo 11 integer :: i 12 13 contains 14 procedure, pass(a) :: foo_v => foo_v_inner 15 procedure, pass(a) :: foo_m => foo_m_inner 16 generic, public :: foo => foo_v, foo_m 17 end type foo 18 19 private foo_v_inner, foo_m_inner 20 21contains 22 23 subroutine foo_v_inner(x,a) 24 real :: x(:) 25 class(foo) :: a 26 27 a%i = int(x(1)) 28 WRITE (*,*) "Vector" 29 end subroutine foo_v_inner 30 31 subroutine foo_m_inner(x,a) 32 real :: x(:,:) 33 class(foo) :: a 34 35 a%i = int(x(1,1)) 36 WRITE (*,*) "Matrix" 37 end subroutine foo_m_inner 38end module bar_mod 39 40program foobar 41 use bar_mod 42 type(foo) :: dat 43 real :: x1(10), x2(10,10) 44 45 x1=1 46 x2=2 47 48 call dat%foo(x1) 49 call dat%foo(x2) 50 51end program foobar 52 53! { dg-output "Vector.*Matrix" } 54