xref: /llvm-project/flang/test/Semantics/OpenMP/default-clause.f90 (revision 502bea25bdc07d1811b8bfea1c2e6bfa8617f72f)
1! RUN: %flang_fc1 -fopenmp -fdebug-dump-symbols %s | FileCheck %s
2
3! Test symbols generated in block constructs in the
4! presence of `default(...)` clause
5
6program sample
7    !CHECK: a size=4 offset=20: ObjectEntity type: INTEGER(4)
8    !CHECK: k size=4 offset=16: ObjectEntity type: INTEGER(4)
9    !CHECK: w size=4 offset=12: ObjectEntity type: INTEGER(4)
10    !CHECK: x size=4 offset=0: ObjectEntity type: INTEGER(4)
11    !CHECK: y size=4 offset=4: ObjectEntity type: INTEGER(4)
12    !CHECK: z size=4 offset=8: ObjectEntity type: INTEGER(4)
13    integer x, y, z, w, k, a
14    !$omp parallel  firstprivate(x) private(y) shared(w) default(private)
15        !CHECK: OtherConstruct scope: size=0 alignment=1
16        !CHECK: a (OmpPrivate): HostAssoc
17        !CHECK: k (OmpPrivate): HostAssoc
18        !CHECK: x (OmpFirstPrivate): HostAssoc
19        !CHECK: y (OmpPrivate): HostAssoc
20        !CHECK: z (OmpPrivate): HostAssoc
21        !$omp parallel default(private)
22            !CHECK: OtherConstruct scope: size=0 alignment=1
23            !CHECK: a (OmpPrivate): HostAssoc
24            !CHECK: x (OmpPrivate): HostAssoc
25            !CHECK: y (OmpPrivate): HostAssoc
26            y = 20
27            x = 10
28           !$omp parallel
29                !CHECK: OtherConstruct scope: size=0 alignment=1
30                a = 10
31           !$omp end parallel
32        !$omp end parallel
33
34        !$omp parallel default(firstprivate) shared(y) private(w)
35            !CHECK: OtherConstruct scope: size=0 alignment=1
36            !CHECK: k (OmpFirstPrivate): HostAssoc
37            !CHECK: w (OmpPrivate): HostAssoc
38            !CHECK: z (OmpFirstPrivate): HostAssoc
39            y = 30
40            w = 40
41            z = 50
42            k = 40
43        !$omp end parallel
44    !$omp end parallel
45end program sample
46