! { dg-do run } ! Renaming of operators module z interface operator(.addfive.) module procedure sub2 end interface contains function sub2(x) integer :: sub integer,intent(in) :: x sub2 = x + 5 end function sub2 end module z module y interface operator(.addfive.) module procedure sub end interface contains function sub(x) integer :: sub integer,intent(in) :: x sub = x + 15 end function sub end module y module x interface operator(.addfive.) module procedure sub end interface contains function sub(x) integer :: sub integer,intent(in) :: x sub = x + 25 end function sub end module x use x, only : operator(.bar.) => operator(.addfive.) use y, operator(.my.) => operator(.addfive.) use z integer :: i i = 2 if ((.bar. i) /= 2+25) STOP 1 if ((.my. i) /= 2+15) STOP 2 if ((.addfive. i) /= 2+5) STOP 3 end