1*fccff3f1SKatherine Rasmussen! RUN: %python %S/test_errors.py %s %flang_fc1 2*fccff3f1SKatherine Rasmussen! This test checks for semantic errors in lock statements based on the 3*fccff3f1SKatherine Rasmussen! statement specification in section 11.6.10 of the Fortran 2018 standard. 4*fccff3f1SKatherine Rasmussen 5*fccff3f1SKatherine Rasmussenprogram test_lock_stmt 6*fccff3f1SKatherine Rasmussen use iso_fortran_env, only: lock_type 7*fccff3f1SKatherine Rasmussen implicit none 8*fccff3f1SKatherine Rasmussen 9*fccff3f1SKatherine Rasmussen character(len=128) error_message 10*fccff3f1SKatherine Rasmussen integer status 11*fccff3f1SKatherine Rasmussen logical bool 12*fccff3f1SKatherine Rasmussen type(lock_type) :: lock_var[*] 13*fccff3f1SKatherine Rasmussen 14*fccff3f1SKatherine Rasmussen !___ non-standard-conforming statements ___ 15*fccff3f1SKatherine Rasmussen 16*fccff3f1SKatherine Rasmussen! missing required lock-variable 17*fccff3f1SKatherine Rasmussen 18*fccff3f1SKatherine Rasmussen !ERROR: expected '(' 19*fccff3f1SKatherine Rasmussen lock 20*fccff3f1SKatherine Rasmussen 21*fccff3f1SKatherine Rasmussen !ERROR: expected '=' 22*fccff3f1SKatherine Rasmussen lock() 23*fccff3f1SKatherine Rasmussen 24*fccff3f1SKatherine Rasmussen !ERROR: expected ')' 25*fccff3f1SKatherine Rasmussen lock(acquired_lock=bool) 26*fccff3f1SKatherine Rasmussen 27*fccff3f1SKatherine Rasmussen !ERROR: expected ')' 28*fccff3f1SKatherine Rasmussen lock(stat=status) 29*fccff3f1SKatherine Rasmussen 30*fccff3f1SKatherine Rasmussen !ERROR: expected ')' 31*fccff3f1SKatherine Rasmussen lock(errmsg=error_message) 32*fccff3f1SKatherine Rasmussen 33*fccff3f1SKatherine Rasmussen! specifiers in lock-stat-list are not variables 34*fccff3f1SKatherine Rasmussen 35*fccff3f1SKatherine Rasmussen !ERROR: expected ')' 36*fccff3f1SKatherine Rasmussen lock(lock_var, acquired_lock=.true.) 37*fccff3f1SKatherine Rasmussen 38*fccff3f1SKatherine Rasmussen !ERROR: expected ')' 39*fccff3f1SKatherine Rasmussen lock(lock_var, stat=1) 40*fccff3f1SKatherine Rasmussen 41*fccff3f1SKatherine Rasmussen !ERROR: expected ')' 42*fccff3f1SKatherine Rasmussen lock(lock_var, errmsg='c') 43*fccff3f1SKatherine Rasmussen 44*fccff3f1SKatherine Rasmussen! specifier typos 45*fccff3f1SKatherine Rasmussen 46*fccff3f1SKatherine Rasmussen !ERROR: expected ')' 47*fccff3f1SKatherine Rasmussen lock(lock_var, acquiredlock=bool, stat=status, errmsg=error_message) 48*fccff3f1SKatherine Rasmussen 49*fccff3f1SKatherine Rasmussen !ERROR: expected ')' 50*fccff3f1SKatherine Rasmussen lock(lock_var, acquired_lock=bool, status=status, errmsg=error_message) 51*fccff3f1SKatherine Rasmussen 52*fccff3f1SKatherine Rasmussen !ERROR: expected ')' 53*fccff3f1SKatherine Rasmussen lock(lock_var, acquired_lock=bool, stat=status, errormsg=error_message) 54*fccff3f1SKatherine Rasmussen 55*fccff3f1SKatherine Rasmussenend program test_lock_stmt 56