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