|  | ! 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 |