xref: /llvm-project/flang/test/Semantics/error_stop1a.f90 (revision 52601325f1a4db06510dbe12562240a018a254bd)
121dceb3cSKatherine Rasmussen! RUN: %python %S/test_errors.py %s %flang_fc1
221dceb3cSKatherine Rasmussen! This test checks for semantic errors in error stop statements based on the
321dceb3cSKatherine Rasmussen! statement specification in section 11.4 of the Fortran 2018 standard.
421dceb3cSKatherine Rasmussen
521dceb3cSKatherine Rasmussenprogram test_error_stop
621dceb3cSKatherine Rasmussen  implicit none
721dceb3cSKatherine Rasmussen
821dceb3cSKatherine Rasmussen  integer int_code, int_array(1), int_coarray[*], array_coarray(1)[*]
921dceb3cSKatherine Rasmussen  integer(kind=1) non_default_int_kind
1021dceb3cSKatherine Rasmussen  character(len=128) char_code, char_array(1), char_coarray[*], non_logical
1121dceb3cSKatherine Rasmussen  character(kind=4, len=128) non_default_char_kind
1221dceb3cSKatherine Rasmussen  logical bool, logical_array(1), logical_coarray[*], non_integer, non_character
1321dceb3cSKatherine Rasmussen
1421dceb3cSKatherine Rasmussen  !___ standard-conforming statements ____________________________
1521dceb3cSKatherine Rasmussen  error stop
1621dceb3cSKatherine Rasmussen
1721dceb3cSKatherine Rasmussen  !___ standard-conforming statements with stop-code ______________
1821dceb3cSKatherine Rasmussen  error stop int_code
1921dceb3cSKatherine Rasmussen  error stop 5
2021dceb3cSKatherine Rasmussen  error stop (5)
2121dceb3cSKatherine Rasmussen  error stop ((5 + 8) * 2)
2221dceb3cSKatherine Rasmussen  error stop char_code
2321dceb3cSKatherine Rasmussen  error stop 'c'
2421dceb3cSKatherine Rasmussen  error stop ('c')
2521dceb3cSKatherine Rasmussen  error stop ('program failed')
2621dceb3cSKatherine Rasmussen  error stop int_array(1)
2721dceb3cSKatherine Rasmussen  error stop char_array(1)
2821dceb3cSKatherine Rasmussen  error stop int_coarray
2921dceb3cSKatherine Rasmussen  error stop int_coarray[1]
3021dceb3cSKatherine Rasmussen  error stop char_coarray
3121dceb3cSKatherine Rasmussen  error stop char_coarray[1]
3221dceb3cSKatherine Rasmussen  error stop array_coarray(1)
3321dceb3cSKatherine Rasmussen  error stop array_coarray(1)[1]
3421dceb3cSKatherine Rasmussen
3521dceb3cSKatherine Rasmussen  !___ standard-conforming statements with stop-code and quiet= ___
3621dceb3cSKatherine Rasmussen  error stop int_code, quiet=bool
3721dceb3cSKatherine Rasmussen  error stop int_code, quiet=logical_array(1)
3821dceb3cSKatherine Rasmussen  error stop int_code, quiet=logical_coarray
3921dceb3cSKatherine Rasmussen  error stop int_code, quiet=logical_coarray[1]
4021dceb3cSKatherine Rasmussen  error stop int_code, quiet=.true.
4121dceb3cSKatherine Rasmussen  error stop (int_code), quiet=.false.
4221dceb3cSKatherine Rasmussen
4321dceb3cSKatherine Rasmussen  !___ non-standard-conforming statements _________________________
4421dceb3cSKatherine Rasmussen
4521dceb3cSKatherine Rasmussen  ! unknown stop-code
46*52601325SPeter Klausler  !ERROR: expected end of statement
4721dceb3cSKatherine Rasmussen  error stop code=int_code
4821dceb3cSKatherine Rasmussen
4921dceb3cSKatherine Rasmussen  ! missing 'quiet='
50*52601325SPeter Klausler  !ERROR: expected end of statement
5121dceb3cSKatherine Rasmussen  error stop int_code, bool
5221dceb3cSKatherine Rasmussen
5321dceb3cSKatherine Rasmussen  ! incorrect spelling for 'quiet='
54*52601325SPeter Klausler  !ERROR: expected end of statement
5521dceb3cSKatherine Rasmussen  error stop int_code, quiets=bool
5621dceb3cSKatherine Rasmussen
5721dceb3cSKatherine Rasmussen  ! missing scalar-logical-expr for quiet=
58*52601325SPeter Klausler  !ERROR: expected end of statement
5921dceb3cSKatherine Rasmussen  error stop int_code, quiet
6021dceb3cSKatherine Rasmussen
6121dceb3cSKatherine Rasmussen  ! superfluous stop-code
62*52601325SPeter Klausler  !ERROR: expected end of statement
6321dceb3cSKatherine Rasmussen  error stop int_code, char_code
6421dceb3cSKatherine Rasmussen
6521dceb3cSKatherine Rasmussen  ! repeated quiet=
66*52601325SPeter Klausler  !ERROR: expected end of statement
6721dceb3cSKatherine Rasmussen  error stop int_code, quiet=bool, quiet=.true.
6821dceb3cSKatherine Rasmussen
6921dceb3cSKatherine Rasmussen  ! superfluous stop-code
70*52601325SPeter Klausler  !ERROR: expected end of statement
7121dceb3cSKatherine Rasmussen  error stop int_code, char_code, quiet=bool
7221dceb3cSKatherine Rasmussen
7321dceb3cSKatherine Rasmussen  ! superfluous integer
74*52601325SPeter Klausler  !ERROR: expected end of statement
7521dceb3cSKatherine Rasmussen  error stop int_code, quiet=bool, 5
7621dceb3cSKatherine Rasmussen
7721dceb3cSKatherine Rasmussen  ! quiet= appears without stop-code
78*52601325SPeter Klausler  !ERROR: expected end of statement
7921dceb3cSKatherine Rasmussen  error stop quiet=bool
8021dceb3cSKatherine Rasmussen
8121dceb3cSKatherine Rasmussen  ! incorrect syntax
82*52601325SPeter Klausler  !ERROR: expected end of statement
8321dceb3cSKatherine Rasmussen  error stop ()
8421dceb3cSKatherine Rasmussen
8521dceb3cSKatherine Rasmussen  ! incorrect syntax
86*52601325SPeter Klausler  !ERROR: expected end of statement
8721dceb3cSKatherine Rasmussen  error stop (2, quiet=.true.)
8821dceb3cSKatherine Rasmussen
8921dceb3cSKatherine Rasmussenend program test_error_stop
90