| ! RUN: %python %S/test_errors.py %s %flang -fopenmp |
| ! OpenMP Version 5.0 |
| ! 2.9.3.1 simd Construct |
| ! - A program that branches into or out of a simd region is non-conforming. |
| ! - The associated loops must be structured blocks |
| |
| program omp_simd |
| integer i, j |
| |
| !$omp simd |
| do i = 1, 10 |
| do j = 1, 10 |
| print *, "omp simd" |
| !ERROR: invalid branch leaving an OpenMP structured block |
| goto 10 |
| end do |
| if (i .EQ. 5) THEN |
| call function1() |
| else if (i .EQ. 7) THEN |
| open (10, file="random-file-name.txt", err=20) |
| 20 print *, "Error message doesn't branch out of the loop's structured block" |
| else |
| !ERROR: invalid branch leaving an OpenMP structured block |
| open (10, file="random-file-name.txt", err=10) |
| end if |
| end do |
| !$omp end simd |
| 10 stop |
| |
| end program omp_simd |
| |
| subroutine function1() |
| integer i, option |
| option = 1 |
| !$omp simd |
| do i = 1, 10 |
| print *, "CORRECT SIMD LOOP" |
| end do |
| !$omp end simd |
| end subroutine function1 |