| ! RUN: %python %S/test_errors.py %s %flang_fc1 |
| ! Check for semantic errors in get_team(), as defined in |
| ! section 16.9.85 of the Fortran 2018 standard |
| |
| program get_team_test |
| use iso_fortran_env, only: team_type, initial_team, current_team, parent_team |
| implicit none |
| |
| integer n, array(1), coarray[*] |
| type(team_type) :: result_team |
| logical wrong_result_type, non_integer |
| |
| !___ standard-conforming statement with no optional arguments present ___ |
| result_team = get_team() |
| |
| !___ standard-conforming statements with optional level argument present ___ |
| result_team = get_team(-1) |
| result_team = get_team(-2) |
| result_team = get_team(-3) |
| result_team = get_team(initial_team) |
| result_team = get_team(current_team) |
| result_team = get_team(parent_team) |
| result_team = get_team(n) |
| result_team = get_team(array(1)) |
| result_team = get_team(array(n)) |
| result_team = get_team(coarray[1]) |
| result_team = get_team(level=initial_team) |
| result_team = get_team(level=n) |
| |
| !___ non-conforming statements ___ |
| !ERROR: 'level=' argument has unacceptable rank 1 |
| result_team = get_team(array) |
| |
| !ERROR: Actual argument for 'level=' has bad type 'LOGICAL(4)' |
| result_team = get_team(non_integer) |
| |
| !ERROR: Actual argument for 'level=' has bad type 'REAL(4)' |
| result_team = get_team(3.4) |
| |
| !ERROR: too many actual arguments for intrinsic 'get_team' |
| result_team = get_team(current_team, parent_team) |
| |
| !ERROR: Actual argument for 'level=' has bad type 'REAL(4)' |
| result_team = get_team(level=3.4) |
| |
| !ERROR: unknown keyword argument to intrinsic 'get_team' |
| result_team = get_team(levels=initial_team) |
| |
| !ERROR: repeated keyword argument to intrinsic 'get_team' |
| result_team = get_team(level=initial_team, level=parent_team) |
| |
| !ERROR: No intrinsic or user-defined ASSIGNMENT(=) matches operand types LOGICAL(4) and TYPE(__builtin_team_type) |
| wrong_result_type = get_team() |
| |
| end program get_team_test |