aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/gfortran.dg/coarray_lock_5.f90
blob: b419606b0de1e73198ecac5cb34a9d79da6cf50f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
! { dg-do compile }
! { dg-options "-fcoarray=single" }
!
! LOCK_TYPE checks
!
module m3
  use iso_fortran_env
  type, extends(lock_type) :: lock
    integer :: j = 7
  end type lock
end module m3

use m3
type(lock_type) :: tl[*] = lock_type ()
type(lock) :: t[*]
tl = lock_type () ! { dg-error "variable definition context" }
print *,t%j
end

subroutine test()
  use iso_fortran_env
  type t
    type(lock_type) :: lock
  end type t

  type t2
    type(t), pointer :: x ! { dg-error "Pointer component x at .1. has a noncoarray subcomponent of type LOCK_TYPE, which must have a codimension or be a subcomponent of a coarray" }
  end type t2
end subroutine test

subroutine test2()
  use iso_fortran_env
  implicit none
  type t
    type(lock_type), allocatable :: lock ! { dg-error "Allocatable component lock at .1. of type LOCK_TYPE must have a codimension" }
  end type t
  type t2
    type(lock_type) :: lock
  end type t2
  type t3
    type(t2), allocatable :: lock_cmp
  end type t3
  type t4
    integer, allocatable :: a[:]
    type(t2) :: b ! { dg-error "Noncoarray component b at .1. of type LOCK_TYPE or with subcomponent of type LOCK_TYPE must have a codimension or be a subcomponent of a coarray. .Variables of type t4 may not have a codimension as already a coarray subcomponent exists." }
  end type t4
  type t5
    type(t2) :: c ! { dg-error "Noncoarray component c at .1. of type LOCK_TYPE or with subcomponent of type LOCK_TYPE must have a codimension or be a subcomponent of a coarray. .Variables of type t5 may not have a codimension as d at .2. has a codimension or a coarray subcomponent." }
    integer, allocatable :: d[:] ! { dg-error "Noncoarray component c at .1. of type LOCK_TYPE or with subcomponent of type LOCK_TYPE must have a codimension or be a subcomponent of a coarray. .Variables of type t5 may not have a codimension as d at .2. has a codimension or a coarray subcomponent." }
  end type t5
end subroutine test2