! { dg-do compile } ! { dg-options "-fcoarray=single" } ! ! PR fortran/48820 ! ! Assumed-rank constraint checks and other diagnostics ! subroutine foo(x) ! { dg-error "Assumed-type variable x at .1. may not have the INTENT.OUT. attribute" } type(*), intent(out) :: x end subroutine subroutine bar(x) integer, intent(out) :: x(..) end subroutine bar subroutine foo3(y) integer :: y(..) y = 7 ! { dg-error "Assumed-rank variable y at .1. may only be used as actual argument" } print *, y + 10 ! { dg-error "Assumed-rank variable y at .1. may only be used as actual argument" } print *, y ! { dg-error "Assumed-rank variable y at .1. may only be used as actual argument" } end subroutine subroutine foo2(x, y) integer :: x(..), y(..) call valid3(x(:)) ! { dg-error "Assumed-rank variable x at .1. shall not have a subobject reference" } contains subroutine valid3(y) integer :: y(..) end subroutine end subroutine subroutine foo4(x) integer, codimension[*] :: x(..) ! { dg-error "The assumed-rank array at .1. shall not have a codimension" } end subroutine subroutine foo5(y) ! { dg-error "may not have the VALUE or CODIMENSION attribute" } integer :: y(..)[*] end subroutine