1! { dg-do compile }
2!
3! PR 56814: [4.8/4.9 Regression] Bogus Interface mismatch in dummy procedure
4!
5! Contributed by Marco Restelli <mrestelli@gmail.com>
6
7module m1
8  abstract interface
9    pure function i_f(x) result(d)
10    real, intent(in) :: x(:,:)
11    real :: d(size(x,1),size(x,2))
12    end function
13  end interface
14
15  procedure(i_f), pointer :: f => null()
16end module
17
18module m2
19contains
20  pure subroutine ns_dirdata(fun)
21    interface
22    pure function fun(x) result(d)
23      real, intent(in) :: x(:,:)
24      real :: d(size(x,1),size(x,2))
25    end function
26    end interface
27  end subroutine
28end module
29
30program p
31 use m1
32 use m2
33  call ns_dirdata(f)
34end
35