| ! RUN: %flang_fc1 -fdebug-unparse-with-symbols %s 2>&1 | FileCheck %s |
| ! CHECK-NOT: do [1-9] |
| |
| ! Figure out how to also execute this test. |
| |
| program main |
| integer :: results(100) |
| integer :: count |
| count = 0 |
| if (.true.) then |
| do 1 j1=1,2 |
| count = count + 1 |
| results(count) = j1 |
| 1 continue |
| end if |
| do 2 j1=3,4 |
| do 2 j2=1,2 |
| if (j1 == j2) then |
| do 3 j3=1,2 |
| count = count + 1 |
| results(count) = 100*j1 + 10*j2 + j3 |
| do 3 j4=1,2 |
| do |
| count = count + 1 |
| results(count) = 10*j3 + j4 |
| exit |
| end do |
| 3 end do |
| else |
| do |
| do 4 j3=3,4 |
| count = count + 1 |
| results(count) = 100*j1 + 10*j2 + j3 |
| do 4 j4=3,4 |
| count = count + 1 |
| results(count) = 10*j3 + j4 |
| 4 end do |
| exit |
| end do |
| end if |
| count = count + 1 |
| results(count) = 10*j1 + j2 |
| 2 continue |
| do 5 j1=5,6 ! adjacent non-block DO loops |
| count = count + 1 |
| 5 results(count) = j1 |
| do 6 j1=7,8 ! non-block DO loop at end of execution part |
| count = count + 1 |
| 6 results(count) = j1 |
| if (count == 34 .and. sum(results(1:count)) == 3739) then |
| print *, 'pass' |
| else |
| print *, 'FAIL:', count, sum(results(1:count)), results(1:count) |
| end if |
| end |