1! { dg-do compile }
2! { dg-options "-fcoarray=single -Wall" }
3!
4! This program is perfectly valid; however, passing an (allocatable) coarray
5! as actual argument to a non-coarray allocatable dummy is doubtful as
6! reallocation is not allowed. Thus, an intent(out) dummy should be always
7! wrong.
8!
9
10integer, allocatable :: myCaf(:)[:]
11
12allocate(myCaf(1)[*])
13
14call doubtful_valid(myCaf)  ! { dg-warning "to allocatable, noncoarray dummy" }
15call invalid(myCaf)         ! { dg-error "to allocatable, noncoarray, INTENT.OUT. dummy" }
16contains
17  subroutine doubtful_valid(x)
18    integer, allocatable :: x(:)
19    ! Valid as x's allocation status is not touched.
20    x(1) = 7
21  end subroutine doubtful_valid
22  subroutine invalid(y)
23    integer, allocatable, intent(out) :: y(:)
24    allocate (y(1))
25  end subroutine invalid
26end
27