xref: /llvm-project/flang/test/Semantics/OpenMP/symbol07.f90 (revision 8e10a3f80e264aaa186ab3cc74fea840f453c66d)
1! RUN: %python %S/../test_symbols.py %s %flang_fc1 -fopenmp
2
3! Generic tests
4!   1. subroutine or function calls should not be fixed for DSA or DMA
5
6!DEF: /foo (Function) Subprogram REAL(4)
7!DEF: /foo/rnum ObjectEntity REAL(4)
8function foo(rnum)
9  !REF: /foo/rnum
10  real rnum
11  !REF: /foo/rnum
12  rnum = rnum+1.
13end function foo
14!DEF: /function_call_in_region EXTERNAL (Subroutine) Subprogram
15subroutine function_call_in_region
16  implicit none
17  !DEF: /function_call_in_region/foo (Function) ProcEntity REAL(4)
18  real foo
19  !DEF: /function_call_in_region/a ObjectEntity REAL(4)
20  real :: a = 0.
21  !DEF: /function_call_in_region/b ObjectEntity REAL(4)
22  real :: b = 5.
23  !$omp parallel  default(none) private(a) shared(b)
24  !DEF: /function_call_in_region/OtherConstruct1/a (OmpPrivate) HostAssoc REAL(4)
25  !REF: /function_call_in_region/foo
26  !DEF: /function_call_in_region/OtherConstruct1/b (OmpShared) HostAssoc REAL(4)
27  a = foo(b)
28  !$omp end parallel
29  !REF: /function_call_in_region/a
30  !REF: /function_call_in_region/b
31  print *, a, b
32end subroutine function_call_in_region
33!DEF: /mm MainProgram
34program mm
35  !REF: /function_call_in_region
36  call function_call_in_region
37end program mm
38