! { 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) call abort () if ((.my. i) /= 2+15) call abort () if ((.addfive. i) /= 2+5) call abort () end