1! RUN: %flang_fc1 -fdebug-unparse -fopenmp %s 2>&1 | FileCheck %s 2 3#define DIR_START !dir$ 4#define DIR_CONT !dir$& 5#define FIRST(x) DIR_START x 6#define NEXT(x) DIR_CONT x 7#define AMPER & 8#define COMMENT ! 9#define OMP_START !$omp 10#define OMP_CONT !$omp& 11 12module m 13 contains 14 subroutine s1(x1, x2, x3, x4, x5, x6, x7) 15 16!dir$ ignore_tkr x1 17 18!dir$ ignore_tkr & 19!dir$& x2 20 21DIR_START ignore_tkr x3 22 23!dir$ ignore_tkr AMPER 24DIR_CONT x4 25 26FIRST(ignore_tkr &) 27!dir$& x5 28 29FIRST(ignore_tkr &) 30NEXT(x6) 31 32COMMENT blah & 33COMMENT & more 34 stop 1 35 36OMP_START parallel & 37OMP_START do & 38OMP_START reduction(+:x) 39 do j1 = 1, n 40 end do 41 42OMP_START parallel & 43OMP_START & do & 44OMP_START & reduction(+:x) 45 do j2 = 1, n 46 end do 47 48OMP_START parallel & 49OMP_CONT do & 50OMP_CONT reduction(+:x) 51 do j3 = 1, n 52 end do 53 end 54 55COMMENT & 56 subroutine s2 57 end subroutine 58COMMENT& 59 subroutine s3 60 end subroutine 61end module 62 63!CHECK: MODULE m 64!CHECK: CONTAINS 65!CHECK: SUBROUTINE s1 (x1, x2, x3, x4, x5, x6, x7) 66!CHECK: !DIR$ IGNORE_TKR x1 67!CHECK: !DIR$ IGNORE_TKR x2 68!CHECK: !DIR$ IGNORE_TKR x3 69!CHECK: !DIR$ IGNORE_TKR x4 70!CHECK: !DIR$ IGNORE_TKR x5 71!CHECK: !DIR$ IGNORE_TKR x6 72!CHECK: STOP 1_4 73!CHECK: !$OMP PARALLEL DO REDUCTION(+: x) 74!CHECK: DO j1=1_4,n 75!CHECK: END DO 76!CHECK: !$OMP PARALLEL DO REDUCTION(+: x) 77!CHECK: DO j2=1_4,n 78!CHECK: END DO 79!CHECK: !$OMP PARALLEL DO REDUCTION(+: x) 80!CHECK: DO j3=1_4,n 81!CHECK: END DO 82!CHECK: END SUBROUTINE 83!CHECK: SUBROUTINE s2 84!CHECK: END SUBROUTINE 85!CHECK: SUBROUTINE s3 86!CHECK: END SUBROUTINE 87!CHECK: END MODULE 88