1*6c1ac141SIvan Zhechev! RUN: %python %S/test_errors.py %s %flang_fc1 264ab3302SCarolineConcatto! C1167 -- An exit-stmt shall not appear within a DO CONCURRENT construct if 364ab3302SCarolineConcatto! it belongs to that construct or an outer construct. 464ab3302SCarolineConcatto 564ab3302SCarolineConcattosubroutine do_concurrent_test1(n) 664ab3302SCarolineConcatto implicit none 764ab3302SCarolineConcatto integer :: n 864ab3302SCarolineConcatto integer :: j,k 964ab3302SCarolineConcatto mydoc: do concurrent(j=1:n) 1064ab3302SCarolineConcatto mydo: do k=1,n 1164ab3302SCarolineConcatto!ERROR: EXIT must not leave a DO CONCURRENT statement 1264ab3302SCarolineConcatto if (k==5) exit mydoc 1364ab3302SCarolineConcatto if (j==10) exit mydo 1464ab3302SCarolineConcatto end do mydo 1564ab3302SCarolineConcatto end do mydoc 1664ab3302SCarolineConcattoend subroutine do_concurrent_test1 1764ab3302SCarolineConcatto 1864ab3302SCarolineConcattosubroutine do_concurrent_test2(n) 1964ab3302SCarolineConcatto implicit none 2064ab3302SCarolineConcatto integer :: j,k,n 2164ab3302SCarolineConcatto mydoc: do concurrent(j=1:n) 2264ab3302SCarolineConcatto!ERROR: EXIT must not leave a DO CONCURRENT statement 2364ab3302SCarolineConcatto if (k==5) exit 2464ab3302SCarolineConcatto end do mydoc 2564ab3302SCarolineConcattoend subroutine do_concurrent_test2 2664ab3302SCarolineConcatto 2764ab3302SCarolineConcattosubroutine do_concurrent_test3(n) 2864ab3302SCarolineConcatto implicit none 2964ab3302SCarolineConcatto integer :: j,k,n 3064ab3302SCarolineConcatto mytest3: if (n>0) then 3164ab3302SCarolineConcatto mydoc: do concurrent(j=1:n) 3264ab3302SCarolineConcatto do k=1,n 3364ab3302SCarolineConcatto!ERROR: EXIT must not leave a DO CONCURRENT statement 3464ab3302SCarolineConcatto if (j==10) exit mytest3 3564ab3302SCarolineConcatto end do 3664ab3302SCarolineConcatto end do mydoc 3764ab3302SCarolineConcatto end if mytest3 3864ab3302SCarolineConcattoend subroutine do_concurrent_test3 3964ab3302SCarolineConcatto 4064ab3302SCarolineConcattosubroutine do_concurrent_test4(n) 4164ab3302SCarolineConcatto implicit none 4264ab3302SCarolineConcatto integer :: j,k,n 4364ab3302SCarolineConcatto mytest4: if (n>0) then 4464ab3302SCarolineConcatto mydoc: do concurrent(j=1:n) 4564ab3302SCarolineConcatto do concurrent(k=1:n) 4664ab3302SCarolineConcatto!ERROR: EXIT must not leave a DO CONCURRENT statement 4764ab3302SCarolineConcatto if (k==5) exit 4864ab3302SCarolineConcatto!ERROR: EXIT must not leave a DO CONCURRENT statement 4964ab3302SCarolineConcatto!ERROR: EXIT must not leave a DO CONCURRENT statement 5064ab3302SCarolineConcatto if (j==10) exit mytest4 5164ab3302SCarolineConcatto end do 5264ab3302SCarolineConcatto end do mydoc 5364ab3302SCarolineConcatto end if mytest4 5464ab3302SCarolineConcattoend subroutine do_concurrent_test4 55