xref: /llvm-project/flang/test/Semantics/coarrays01.f90 (revision 6c1ac141d3c98af9738bc77fcb55602cbff7751f)
1*6c1ac141SIvan Zhechev! RUN: %python %S/test_errors.py %s %flang_fc1
264ab3302SCarolineConcatto! Test selector and team-value in CHANGE TEAM statement
364ab3302SCarolineConcatto
464ab3302SCarolineConcatto! OK
564ab3302SCarolineConcattosubroutine s1
664ab3302SCarolineConcatto  use iso_fortran_env, only: team_type
764ab3302SCarolineConcatto  type(team_type) :: t
864ab3302SCarolineConcatto  real :: y[10,*]
964ab3302SCarolineConcatto  change team(t, x[10,*] => y)
1064ab3302SCarolineConcatto  end team
1164ab3302SCarolineConcatto  form team(1, t)
1264ab3302SCarolineConcattoend
1364ab3302SCarolineConcatto
1464ab3302SCarolineConcattosubroutine s2
1564ab3302SCarolineConcatto  use iso_fortran_env
1664ab3302SCarolineConcatto  type(team_type) :: t
1764ab3302SCarolineConcatto  real :: y[10,*], y2[*], x[*]
1864ab3302SCarolineConcatto  ! C1113
1964ab3302SCarolineConcatto  !ERROR: Selector 'y' was already used as a selector or coarray in this statement
2064ab3302SCarolineConcatto  change team(t, x[10,*] => y, x2[*] => y)
2164ab3302SCarolineConcatto  end team
2264ab3302SCarolineConcatto  !ERROR: Selector 'x' was already used as a selector or coarray in this statement
2364ab3302SCarolineConcatto  change team(t, x[10,*] => y, x2[*] => x)
2464ab3302SCarolineConcatto  end team
2564ab3302SCarolineConcatto  !ERROR: Coarray 'y' was already used as a selector or coarray in this statement
2664ab3302SCarolineConcatto  change team(t, x[10,*] => y, y[*] => y2)
2764ab3302SCarolineConcatto  end team
2864ab3302SCarolineConcattoend
2964ab3302SCarolineConcatto
3064ab3302SCarolineConcattosubroutine s3
3164ab3302SCarolineConcatto  type :: team_type
3264ab3302SCarolineConcatto  end type
3364ab3302SCarolineConcatto  type :: foo
3464ab3302SCarolineConcatto    real :: a
3564ab3302SCarolineConcatto  end type
3664ab3302SCarolineConcatto  type(team_type) :: t1
3764ab3302SCarolineConcatto  type(foo) :: t2
3864ab3302SCarolineConcatto  type(team_type) :: t3(3)
3964ab3302SCarolineConcatto  real :: y[10,*]
4064ab3302SCarolineConcatto  ! C1114
4164ab3302SCarolineConcatto  !ERROR: Team value must be of type TEAM_TYPE from module ISO_FORTRAN_ENV
4264ab3302SCarolineConcatto  change team(t1, x[10,*] => y)
4364ab3302SCarolineConcatto  end team
4464ab3302SCarolineConcatto  !ERROR: Team value must be of type TEAM_TYPE from module ISO_FORTRAN_ENV
4564ab3302SCarolineConcatto  change team(t2, x[10,*] => y)
4664ab3302SCarolineConcatto  end team
4764ab3302SCarolineConcatto  !ERROR: Team value must be of type TEAM_TYPE from module ISO_FORTRAN_ENV
4864ab3302SCarolineConcatto  change team(t2%a, x[10,*] => y)
4964ab3302SCarolineConcatto  end team
5064ab3302SCarolineConcatto  !ERROR: Must be a scalar value, but is a rank-1 array
5164ab3302SCarolineConcatto  change team(t3, x[10,*] => y)
5264ab3302SCarolineConcatto  end team
5364ab3302SCarolineConcatto  !ERROR: Team value must be of type TEAM_TYPE from module ISO_FORTRAN_ENV
5464ab3302SCarolineConcatto  form team(1, t1)
5564ab3302SCarolineConcatto  !ERROR: Team value must be of type TEAM_TYPE from module ISO_FORTRAN_ENV
5664ab3302SCarolineConcatto  form team(2, t2)
5764ab3302SCarolineConcatto  !ERROR: Team value must be of type TEAM_TYPE from module ISO_FORTRAN_ENV
5864ab3302SCarolineConcatto  form team(2, t2%a)
5964ab3302SCarolineConcatto  !ERROR: Team value must be of type TEAM_TYPE from module ISO_FORTRAN_ENV
6064ab3302SCarolineConcatto  form team(3, t3(2))
6164ab3302SCarolineConcatto  !ERROR: Must be a scalar value, but is a rank-1 array
6264ab3302SCarolineConcatto  form team(3, t3)
6364ab3302SCarolineConcattoend
6464ab3302SCarolineConcatto
6564ab3302SCarolineConcattosubroutine s4
6664ab3302SCarolineConcatto  use iso_fortran_env, only: team_type
6764ab3302SCarolineConcatto  complex :: z
6864ab3302SCarolineConcatto  integer :: i, j(10)
6964ab3302SCarolineConcatto  type(team_type) :: t, t2(2)
7064ab3302SCarolineConcatto  form team(i, t)
7164ab3302SCarolineConcatto  !ERROR: Must be a scalar value, but is a rank-1 array
7264ab3302SCarolineConcatto  form team(1, t2)
7364ab3302SCarolineConcatto  !ERROR: Must have INTEGER type, but is COMPLEX(4)
7464ab3302SCarolineConcatto  form team(z, t)
7564ab3302SCarolineConcatto  !ERROR: Must be a scalar value, but is a rank-1 array
7664ab3302SCarolineConcatto  form team(j, t)
7764ab3302SCarolineConcattoend
78