diff --git a/flang/test/Semantics/critical05.f90 b/flang/test/Semantics/critical05.f90 new file mode 100644 index 0000000000000..b96e49714a713 --- /dev/null +++ b/flang/test/Semantics/critical05.f90 @@ -0,0 +1,38 @@ +! RUN: %python %S/test_errors.py %s %flang_fc1 +program testcriticalconstruct + integer :: status + character(len=128) :: errormessage + integer :: total = 0 + integer :: i + + CRITICAL + END CRITICAL + + Testname: Critical + End critical Testname + + stat_variable: critical (STAT=status) + End critical stat_variable + + errmsg_variable: critical (ERRMSG=errormessage) + End critical errmsg_variable + + critical (ERRMSG=errormessage, STAT=status) + End critical + + critical () + end critical + + critical (STAT=status) + do i = 1, this_image() + total = total + 1 + end do + print *, "Total is: ", total + End critical + + critical + 10 continue + GO TO 10 + End critical + +end program testcriticalconstruct diff --git a/flang/test/Semantics/critical06.f90 b/flang/test/Semantics/critical06.f90 new file mode 100644 index 0000000000000..d4a17ff98f842 --- /dev/null +++ b/flang/test/Semantics/critical06.f90 @@ -0,0 +1,12 @@ +! RUN: %python %S/test_errors.py %s %flang_fc1 +program testcriticalconstruct + + Start_name_only: Critical + !ERROR: CRITICAL construct name required but missing + End critical !C1117 in the Fortran 2018 standard + + critical + !ERROR: CRITICAL construct name unexpected + end critical end_name_only !C1117 in Fortran 2018 standard + +end program