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