! { dg-do compile } ! PR fortran/41177 ! Test for additional errors with type-bound procedure bindings. ! Namely that non-scalar base objects are rejected for TBP calls which are ! NOPASS, and that passed-object dummy arguments must be scalar, non-POINTER ! and non-ALLOCATABLE. MODULE m IMPLICIT NONE TYPE t CONTAINS PROCEDURE, NOPASS :: myproc END TYPE t TYPE t2 CONTAINS PROCEDURE, PASS :: nonscalar ! { dg-error "must be scalar" } PROCEDURE, PASS :: is_pointer ! { dg-error "must not be POINTER" } PROCEDURE, PASS :: is_allocatable ! { dg-error "must not be ALLOCATABLE" } END TYPE t2 CONTAINS SUBROUTINE myproc () END SUBROUTINE myproc SUBROUTINE nonscalar (me) CLASS(t2), INTENT(IN) :: me(:) END SUBROUTINE nonscalar SUBROUTINE is_pointer (me) CLASS(t2), POINTER, INTENT(IN) :: me END SUBROUTINE is_pointer SUBROUTINE is_allocatable (me) CLASS(t2), ALLOCATABLE, INTENT(IN) :: me END SUBROUTINE is_allocatable SUBROUTINE test () TYPE(t) :: arr(2) CALL arr%myproc () ! { dg-error "must be scalar" } END SUBROUTINE test END MODULE m