! RUN: %python %S/test_errors.py %s %flang_fc1 ! Tests actual/dummy pointer argument shape mismatches module m contains subroutine s0(p) real, pointer, intent(in) :: p end subroutine s1(p) real, pointer, intent(in) :: p(:) end subroutine sa(p) real, pointer, intent(in) :: p(..) end subroutine sao(p) real, intent(in), optional, pointer :: p(..) end subroutine so(x) real, intent(in), optional :: x(..) end subroutine soa(a) real, intent(in), optional, allocatable :: a(..) end subroutine test real, pointer :: a0, a1(:) call s0(null(a0)) ! ok !ERROR: Rank of dummy argument is 0, but actual argument has rank 1 !ERROR: Rank of pointer is 0, but function result has rank 1 call s0(null(a1)) !ERROR: Rank of dummy argument is 1, but actual argument has rank 0 !ERROR: Rank of pointer is 1, but function result has rank 0 call s1(null(a0)) call s1(null(a1)) ! ok call sa(null(a0)) ! ok call sa(null(a1)) ! ok !ERROR: NULL() without MOLD= must not be associated with an assumed-rank dummy argument that is ALLOCATABLE, POINTER, or non-OPTIONAL call sa(null()) call sao ! ok !ERROR: NULL() without MOLD= must not be associated with an assumed-rank dummy argument that is ALLOCATABLE, POINTER, or non-OPTIONAL call sao(null()) call so ! ok call so(null()) ! ok call soa ! ok !ERROR: NULL() without MOLD= must not be associated with an assumed-rank dummy argument that is ALLOCATABLE, POINTER, or non-OPTIONAL call soa(null()) end end