xref: /llvm-project/flang/test/Semantics/OpenMP/symbol01.f90 (revision 8e10a3f80e264aaa186ab3cc74fea840f453c66d)
1! RUN: %python %S/../test_symbols.py %s %flang_fc1 -fopenmp
2
3! Test clauses that accept list.
4! 2.1 Directive Format
5!   A list consists of a comma-separated collection of one or more list items.
6!   A list item is a variable, array section or common block name (enclosed in
7!   slashes).
8
9!DEF: /md Module
10module md
11 !DEF: /md/myty PUBLIC DerivedType
12 type :: myty
13  !DEF: /md/myty/a ObjectEntity REAL(4)
14  real :: a
15  !DEF: /md/myty/b ObjectEntity INTEGER(4)
16  integer :: b
17 end type myty
18end module md
19!DEF: /mm MainProgram
20program mm
21 !REF: /md
22 use :: md
23 !DEF: /mm/c CommonBlockDetails
24 !DEF: /mm/x ObjectEntity REAL(4)
25 !DEF: /mm/y ObjectEntity REAL(4)
26 common /c/x, y
27 !REF: /mm/x
28 !REF: /mm/y
29 real x, y
30 !DEF: /mm/myty Use
31 !DEF: /mm/t ObjectEntity TYPE(myty)
32 type(myty) :: t
33 !DEF: /mm/b ObjectEntity INTEGER(4)
34 integer b(10)
35 !REF: /mm/t
36 !REF: /md/myty/a
37 t%a = 3.14
38 !REF: /mm/t
39 !REF: /md/myty/b
40 t%b = 1
41 !REF: /mm/b
42 b = 2
43 !DEF: /mm/a (Implicit) ObjectEntity REAL(4)
44 a = 1.0
45 !DEF: /mm/c (Implicit) ObjectEntity REAL(4)
46 c = 2.0
47!$omp parallel do  private(a,t,/c/) shared(c)
48 !DEF: /mm/OtherConstruct1/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
49 do i=1,10
50  !DEF: /mm/OtherConstruct1/a (OmpPrivate) HostAssoc REAL(4)
51  !DEF: /mm/OtherConstruct1/b HostAssoc INTEGER(4)
52  !REF: /mm/OtherConstruct1/i
53  a = a+b(i)
54  !DEF: /mm/OtherConstruct1/t (OmpPrivate) HostAssoc TYPE(myty)
55  !REF: /md/myty/a
56  !REF: /mm/OtherConstruct1/i
57  t%a = i
58  !DEF: /mm/OtherConstruct1/y (OmpPrivate) HostAssoc REAL(4)
59  y = 0.
60  !DEF: /mm/OtherConstruct1/x (OmpPrivate) HostAssoc REAL(4)
61  !REF: /mm/OtherConstruct1/a
62  !REF: /mm/OtherConstruct1/i
63  !REF: /mm/OtherConstruct1/y
64  x = a+i+y
65  !DEF: /mm/OtherConstruct1/c (OmpShared) HostAssoc REAL(4)
66  c = 3.0
67 end do
68end program
69