1! { dg-do run }
2! Renaming of operators
3module z
4  interface operator(.addfive.)
5    module procedure sub2
6  end interface
7contains
8function sub2(x)
9  integer :: sub
10  integer,intent(in) :: x
11  sub2 = x + 5
12end function sub2
13end module z
14
15module y
16  interface operator(.addfive.)
17    module procedure sub
18  end interface
19contains
20function sub(x)
21  integer :: sub
22  integer,intent(in) :: x
23  sub = x + 15
24end function sub
25end module y
26
27module x
28  interface operator(.addfive.)
29    module procedure sub
30  end interface
31contains
32function sub(x)
33  integer :: sub
34  integer,intent(in) :: x
35  sub = x + 25
36end function sub
37end module x
38
39use x, only : operator(.bar.) => operator(.addfive.)
40use y, operator(.my.) => operator(.addfive.)
41use z
42 integer :: i
43 i = 2
44 if ((.bar. i) /= 2+25) STOP 1
45 if ((.my. i) /= 2+15) STOP 2
46 if ((.addfive. i) /= 2+5) STOP 3
47end
48