! RUN: %python %S/test_errors.py %s %flang_fc1
! Tests for C760:
! The passed-object dummy argument shall be a scalar, nonpointer, nonallocatable
! dummy data object with the same declared type as the type being defined;
! all of its length type parameters shall be assumed; it shall be polymorphic
! (7.3.2.3) if and only if the type being defined is extensible (7.5.7).
! It shall not have the VALUE attribute.
!
! C757 If the procedure pointer component has an implicit interface or has no
! arguments, NOPASS shall be specified.
!
! C758 If PASS (arg-name) appears, the interface of the procedure pointer
! component shall have a dummy argument named arg-name.


module m1
  type :: t
    procedure(real), pointer, nopass :: a
    !ERROR: Procedure component 'b' must have NOPASS attribute or explicit interface
    procedure(real), pointer :: b
  end type
end

module m2
  type :: t
    !ERROR: Procedure component 'a' with no dummy arguments must have NOPASS attribute
    procedure(s1), pointer :: a
    !ERROR: Procedure component 'b' with no dummy arguments must have NOPASS attribute
    procedure(s1), pointer, pass :: b
  contains
    !ERROR: Procedure binding 'p1' with no dummy arguments must have NOPASS attribute
    procedure :: p1 => s1
    !ERROR: Procedure binding 'p2' with no dummy arguments must have NOPASS attribute
    procedure, pass :: p2 => s1
  end type
contains
  subroutine s1()
  end
end

module m3
  type :: t
    !ERROR: 'y' is not a dummy argument of procedure interface 's'
    procedure(s), pointer, pass(y) :: a
  contains
    !ERROR: 'z' is not a dummy argument of procedure interface 's'
    procedure, pass(z) :: p => s
  end type
contains
  subroutine s(x)
    class(t) :: x
  end
end

module m4
  type :: t
    !ERROR: Passed-object dummy argument 'x' of procedure 'a' may not have the POINTER attribute
    procedure(s1), pointer :: a
    !ERROR: Passed-object dummy argument 'x' of procedure 'b' may not have the ALLOCATABLE attribute
    procedure(s2), pointer, pass(x) :: b
    !ERROR: Passed-object dummy argument 'f' of procedure 'c' must be a data object
    procedure(s3), pointer, pass :: c
    !ERROR: Passed-object dummy argument 'x' of procedure 'd' must be scalar
    procedure(s4), pointer, pass :: d
  end type
contains
  subroutine s1(x)
    class(t), pointer :: x
  end
  subroutine s2(w, x)
    real :: x
    !ERROR: The type of 'x' has already been declared
    class(t), allocatable :: x
  end
  subroutine s3(f)
    interface
      real function f()
      end function
    end interface
  end
  subroutine s4(x)
    class(t) :: x(10)
  end
end

module m5
  type :: t1
    sequence
    !ERROR: Passed-object dummy argument 'x' of procedure 'a' must be of type 't1' but is 'REAL(4)'
    procedure(s), pointer :: a
  end type
  type :: t2
  contains
    !ERROR: Passed-object dummy argument 'y' of procedure 's' must be of type 't2' but is 'TYPE(t1)'
    procedure, pass(y) :: s
  end type
contains
  subroutine s(x, y)
    real :: x
    type(t1) :: y
  end
end

module m6
  type :: t(k, l)
    integer, kind :: k
    integer, len :: l
    !ERROR: Passed-object dummy argument 'x' of procedure 'a' has non-assumed length parameter 'l'
    procedure(s1), pointer :: a
  end type
contains
  subroutine s1(x)
    class(t(1, 2)) :: x
  end
end

module m7
  type :: t
    sequence  ! t is not extensible
    !ERROR: Passed-object dummy argument 'x' of procedure 'a' may not be polymorphic because 't' is not extensible
    procedure(s), pointer :: a
  end type
contains
  subroutine s(x)
    !ERROR: Non-extensible derived type 't' may not be used with CLASS keyword
    class(t) :: x
  end
end

module m8
  type :: t
  contains
    !ERROR: Passed-object dummy argument 'x' of procedure 's' must be polymorphic because 't' is extensible
    procedure :: s
  end type
contains
  subroutine s(x)
    type(t) :: x  ! x is not polymorphic
  end
end
