1! { dg-do compile }
2! Test of the patch for PR30096, in which gfortran incorrectly.
3! compared local with host associated interfaces.
4!
5! Based on contribution by Harald Anlauf <anlauf@gmx.de>
6!
7module module1
8  interface inverse
9     module procedure A, B
10  end interface
11contains
12  function A (X) result (Y)
13    real                        :: X, Y
14    Y = 1.0
15  end function A
16  function B (X) result (Y)
17    integer                     :: X, Y
18    Y = 3
19  end function B
20end module module1
21
22module module2
23  interface inverse
24     module procedure C
25  end interface
26contains
27  function C (X) result (Y)
28    real                        :: X, Y
29    Y = 2.0
30  end function C
31end module module2
32
33program gfcbug48
34  use module1, only : inverse
35  call sub ()
36  if (inverse(1.0_4) /= 1.0_4) call abort ()
37  if (inverse(1_4) /= 3_4) call abort ()
38contains
39  subroutine sub ()
40    use module2, only : inverse
41    if (inverse(1.0_4) /= 2.0_4) call abort ()
42    if (inverse(1_4) /= 3_4) call abort ()
43  end subroutine sub
44end program gfcbug48
45