! { dg-do compile } | |
! { dg-options "-fcoarray=single" } | |
! | |
! | |
! LOCK/LOCK_TYPE checks | |
! | |
subroutine valid() | |
use iso_fortran_env | |
implicit none | |
type t | |
type(lock_type) :: lock | |
end type t | |
type t2 | |
type(lock_type), allocatable :: lock(:)[:] | |
end type t2 | |
type(t), save :: a[*] | |
type(t2), save :: b ! OK | |
allocate(b%lock(1)[*]) | |
LOCK(a%lock) ! OK | |
LOCK(a[1]%lock) ! OK | |
LOCK(b%lock(1)) ! OK | |
LOCK(b%lock(1)[1]) ! OK | |
end subroutine valid | |
subroutine invalid() | |
use iso_fortran_env | |
implicit none | |
type t | |
type(lock_type) :: lock | |
end type t | |
type(t), save :: a ! { dg-error "type LOCK_TYPE or with subcomponent of type LOCK_TYPE must be a coarray" } | |
end subroutine invalid | |
subroutine more_tests | |
use iso_fortran_env | |
implicit none | |
type t | |
type(lock_type) :: a ! OK | |
end type t | |
type t1 | |
type(lock_type), allocatable :: c2(:)[:] ! OK | |
end type t1 | |
type(t1) :: x1 ! OK | |
type t2 | |
type(lock_type), allocatable :: c1(:) ! { dg-error "Allocatable component c1 at .1. of type LOCK_TYPE must have a codimension" } | |
end type t2 | |
type t3 | |
type(t) :: b | |
end type t3 | |
type(t3) :: x3 ! { dg-error "of type LOCK_TYPE or with subcomponent of type LOCK_TYPE must be a coarray" } | |
type t4 | |
type(lock_type) :: c0(2) | |
end type t4 | |
type(t4) :: x4 ! { dg-error "of type LOCK_TYPE or with subcomponent of type LOCK_TYPE must be a coarray" } | |
end subroutine more_tests |