| ! RUN: %flang_fc1 -fdebug-unparse-with-symbols %s 2>&1 | FileCheck %s |
| ! CHECK-NOT: exit from DO CONCURRENT construct |
| |
| subroutine do_concurrent_test1(n) |
| implicit none |
| integer :: j,k,l,n |
| mytest: if (n>0) then |
| mydoc: do concurrent(j=1:n) |
| mydo: do k=1,n |
| if (k==5) exit |
| if (k==6) exit mydo |
| end do mydo |
| do concurrent(l=1:n) |
| if (l==5) print *, "test" |
| end do |
| end do mydoc |
| do k=1,n |
| if (k==5) exit mytest |
| end do |
| end if mytest |
| end subroutine do_concurrent_test1 |
| |
| subroutine do_concurrent_test2(n) |
| implicit none |
| integer :: i1,i2,i3,i4,i5,i6,n |
| mytest2: if (n>0) then |
| nc1: do concurrent(i1=1:n) |
| nc2: do i2=1,n |
| nc3: do concurrent(i3=1:n) |
| nc4: do i4=1,n |
| if (i3==4) exit nc4 |
| nc5: do concurrent(i5=1:n) |
| nc6: do i6=1,n |
| if (i6==10) print *, "hello" |
| end do nc6 |
| end do nc5 |
| end do nc4 |
| end do nc3 |
| end do nc2 |
| end do nc1 |
| end if mytest2 |
| end subroutine do_concurrent_test2 |