| ! RUN: %python %S/test_errors.py %s %flang_fc1 |
| ! Test selector and team-value in CHANGE TEAM statement |
| |
| ! OK |
| subroutine s1 |
| use iso_fortran_env, only: team_type |
| type(team_type) :: t |
| real :: y[10,*] |
| change team(t, x[10,*] => y) |
| end team |
| form team(1, t) |
| end |
| |
| subroutine s2 |
| use iso_fortran_env |
| type(team_type) :: t |
| real :: y[10,*], y2[*], x[*] |
| ! C1113 |
| !ERROR: Selector 'y' was already used as a selector or coarray in this statement |
| change team(t, x[10,*] => y, x2[*] => y) |
| end team |
| !ERROR: Selector 'x' was already used as a selector or coarray in this statement |
| change team(t, x[10,*] => y, x2[*] => x) |
| end team |
| !ERROR: Coarray 'y' was already used as a selector or coarray in this statement |
| change team(t, x[10,*] => y, y[*] => y2) |
| end team |
| end |
| |
| subroutine s3 |
| type :: team_type |
| end type |
| type :: foo |
| real :: a |
| end type |
| type(team_type) :: t1 |
| type(foo) :: t2 |
| type(team_type) :: t3(3) |
| real :: y[10,*] |
| ! C1114 |
| !ERROR: Team value must be of type TEAM_TYPE from module ISO_FORTRAN_ENV |
| change team(t1, x[10,*] => y) |
| end team |
| !ERROR: Team value must be of type TEAM_TYPE from module ISO_FORTRAN_ENV |
| change team(t2, x[10,*] => y) |
| end team |
| !ERROR: Team value must be of type TEAM_TYPE from module ISO_FORTRAN_ENV |
| change team(t2%a, x[10,*] => y) |
| end team |
| !ERROR: Must be a scalar value, but is a rank-1 array |
| change team(t3, x[10,*] => y) |
| end team |
| !ERROR: Team value must be of type TEAM_TYPE from module ISO_FORTRAN_ENV |
| form team(1, t1) |
| !ERROR: Team value must be of type TEAM_TYPE from module ISO_FORTRAN_ENV |
| form team(2, t2) |
| !ERROR: Team value must be of type TEAM_TYPE from module ISO_FORTRAN_ENV |
| form team(2, t2%a) |
| !ERROR: Team value must be of type TEAM_TYPE from module ISO_FORTRAN_ENV |
| form team(3, t3(2)) |
| !ERROR: Must be a scalar value, but is a rank-1 array |
| form team(3, t3) |
| end |
| |
| subroutine s4 |
| use iso_fortran_env, only: team_type |
| complex :: z |
| integer :: i, j(10) |
| type(team_type) :: t, t2(2) |
| form team(i, t) |
| !ERROR: Must be a scalar value, but is a rank-1 array |
| form team(1, t2) |
| !ERROR: Must have INTEGER type, but is COMPLEX(4) |
| form team(z, t) |
| !ERROR: Must be a scalar value, but is a rank-1 array |
| form team(j, t) |
| end |