! { dg-do compile } module foo implicit none interface operator(.x.) module procedure product end interface operator(.x.) contains function product(x, y) real, intent(in) :: x, y real :: product product = x * y end function product end module foo module gfcbug155 implicit none contains subroutine print_prod (x, y) use foo, only : operator(.x.) implicit none real :: x, y print *, x .x. y end subroutine print_prod end module gfcbug155