1! RUN: %python %S/test_errors.py %s %flang_fc1 2! Check for semantic errors in form team statements 3 4subroutine test 5 use, intrinsic :: iso_fortran_env, only: team_type 6 type(team_type) :: team 7 integer :: team_number 8 integer :: team_index 9 integer :: statvar 10 character(len=50) :: errvar 11 integer, codimension[*] :: co_team_number 12 integer, codimension[*] :: co_team_index 13 type(team_type), dimension(1) :: array_team 14 integer, dimension(1) :: array_team_number 15 integer, dimension(1) :: array_team_index 16 integer, dimension(1) :: array_statvar 17 character(len=50), dimension(1) :: array_errvar 18 19 logical :: invalid_argument 20 21 ! Valid invocations which should produce no errors. 22 FORM TEAM (team_number, team) 23 ! One form-team-spec argument. 24 FORM TEAM (team_number, team, NEW_INDEX=team_index) 25 FORM TEAM (team_number, team, STAT=statvar) 26 FORM TEAM (team_number, team, ERRMSG=errvar) 27 ! Two form-team-spec arguments in any order. 28 FORM TEAM (team_number, team, NEW_INDEX=team_index, STAT=statvar) 29 FORM TEAM (team_number, team, STAT=statvar, NEW_INDEX=team_index) 30 FORM TEAM (team_number, team, NEW_INDEX=team_index, ERRMSG=errvar) 31 FORM TEAM (team_number, team, ERRMSG=errvar, NEW_INDEX=team_index) 32 FORM TEAM (team_number, team, STAT=statvar, ERRMSG=errvar) 33 FORM TEAM (team_number, team, ERRMSG=errvar, STAT=statvar) 34! Three form-team-spec arguments in any order. 35 FORM TEAM (team_number, team, NEW_INDEX=team_index, STAT=statvar, ERRMSG=errvar) ! identity 36 FORM TEAM (team_number, team, STAT=statvar, NEW_INDEX=team_index, ERRMSG=errvar) ! transposition (1,2) 37 FORM TEAM (team_number, team, ERRMSG=errvar, STAT=statvar, NEW_INDEX=team_index) ! transposition (1,3) 38 FORM TEAM (team_number, team, NEW_INDEX=team_index, ERRMSG=errvar, STAT=statvar) ! transposition (2,3) 39 FORM TEAM (team_number, team, ERRMSG=errvar, NEW_INDEX=team_index, STAT=statvar) ! cycle (1,2,3) 40 FORM TEAM (team_number, team, STAT=statvar, ERRMSG=errvar, NEW_INDEX=team_index) ! cycle (1,3,2) 41 ! It is semantically legal for team_index to be coindexed. 42 FORM TEAM (team_number, team, NEW_INDEX=co_team_index[this_image()]) 43 44 ! Semantically invalid invocations. 45 !ERROR: Must have INTEGER type, but is LOGICAL(4) 46 FORM TEAM (invalid_argument, team) 47 !ERROR: Must have INTEGER type, but is REAL(4) 48 FORM TEAM (0.0, team) 49 !ERROR: Must have INTEGER type, but is LOGICAL(4) 50 FORM TEAM (team_number, team, NEW_INDEX=invalid_argument) 51 !ERROR: Must have INTEGER type, but is LOGICAL(4) 52 FORM TEAM (team_number, team, STAT=invalid_argument) 53 !ERROR: Must have CHARACTER type, but is LOGICAL(4) 54 FORM TEAM (team_number, team, ERRMSG=invalid_argument) 55 56 ! Arguments with rank mismatches. 57 !ERROR: Must be a scalar value, but is a rank-1 array 58 FORM TEAM (array_team_number, team) 59 !ERROR: Must be a scalar value, but is a rank-1 array 60 FORM TEAM (team_number, array_team) 61 !ERROR: Must be a scalar value, but is a rank-1 array 62 FORM TEAM (team_number, team, NEW_INDEX=array_team_index) 63 !ERROR: Must be a scalar value, but is a rank-1 array 64 FORM TEAM (team_number, team, STAT=array_statvar) 65 !ERROR: Must be a scalar value, but is a rank-1 array 66 FORM TEAM (team_number, team, ERRMSG=array_errvar) 67end subroutine 68