! RUN: %python %S/test_errors.py %s %flang_fc1
! Test restrictions on what subprograms can be used for defined operators.
! See: 15.4.3.4.2

module m1
  interface operator(+)
    !ERROR: OPERATOR(+) procedure 'add1' must be a function
    subroutine add1(x, y, z)
      real, intent(out) :: x
      real, intent(in) :: y, z
    end
  end interface
end

module m2
  interface operator(-)
    real function sub1(x)
      logical, intent(in) :: x
    end
    real function sub2(x, y)
      logical, intent(in) :: x, y
    end
    !ERROR: OPERATOR(-) function 'sub3' must have one or two dummy arguments
    real function sub3(x, y, z)
      real, intent(in) :: x, y, z
    end
  end interface
  interface operator(.not.)
    !ERROR: OPERATOR(.NOT.) function 'not1' must have one dummy argument
    real function not1(x, y)
      real, intent(in) :: x, y
    end
  end interface
end

module m3
  interface operator(/)
    !ERROR: OPERATOR(/) function 'divide' may not have assumed-length CHARACTER(*) result
    character(*) function divide(x, y)
      character(*), intent(in) :: x, y
    end
  end interface
  interface operator(<)
    !ERROR: In OPERATOR(<) function 'lt1', dummy argument 'x' must have INTENT(IN) or VALUE attribute
    !ERROR: In OPERATOR(<) function 'lt1', dummy argument 'y' may not be OPTIONAL
    logical function lt1(x, y)
      logical :: x
      real, value, optional :: y
    end
    !ERROR: In OPERATOR(<) function 'lt2', dummy argument 'y' must be a data object
    logical function lt2(x, y)
      logical, intent(in) :: x
      intent(in) :: y
      interface
        subroutine y()
        end
      end interface
    end
  end interface
end

module m4
  interface operator(+)
    !ERROR: OPERATOR(+) function 'add' conflicts with intrinsic operator
    complex function add(x, y)
      real, intent(in) :: x
      integer, value :: y
    end
    !ERROR: OPERATOR(+) function 'plus' conflicts with intrinsic operator
    real function plus(x)
      complex, intent(in) :: x
    end
  end interface
  interface operator(.not.)
    real function not1(x)
      real, value :: x
    end
    !ERROR: OPERATOR(.NOT.) function 'not2' conflicts with intrinsic operator
    logical(8) function not2(x)
      logical(8), value :: x
    end
  end interface
  interface operator(.and.)
    !ERROR: OPERATOR(.AND.) function 'and' conflicts with intrinsic operator
    real function and(x, y)
      logical(1), value :: x
      logical(8), value :: y
    end
  end interface
  interface operator(//)
    real function concat1(x, y)
      real, value :: x, y
    end
    real function concat2(x, y)
      character(kind=1, len=4), intent(in) :: x
      character(kind=4, len=4), intent(in) :: y
    end
    !ERROR: OPERATOR(//) function 'concat3' conflicts with intrinsic operator
    real function concat3(x, y)
      character(kind=4, len=4), intent(in) :: x
      character(kind=4, len=4), intent(in) :: y
    end
  end interface
end
