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