Fix warning with -Wsign-compare -Wsystem-headers
[official-gcc.git] / gcc / testsuite / gcc.dg / gomp / _Atomic-1.c
blob1f784524f67f2c58314f5a2ce9422d503de86459
1 /* PR c/65467 */
2 /* { dg-do compile } */
3 /* { dg-additional-options "-std=c11" } */
5 _Atomic int t;
6 #pragma omp threadprivate (t)
8 void
9 foo (void)
11 _Atomic int a = 4, b = 0, c, d = 3, e;
12 a++;
13 #pragma omp parallel sections num_threads (a) shared (b) private (c) firstprivate (d) lastprivate (e)
15 #pragma omp section
17 a++;
18 b++;
19 c = 5;
20 c++;
21 d++;
22 e = 9;
23 e++;
25 #pragma omp section
27 a++;
28 b++;
29 c = 5;
30 c++;
31 d++;
32 e = 3;
33 e++;
36 e++;
37 t++;
38 #pragma omp parallel copyin (t) private (e)
40 t++;
41 e = t;
42 #pragma omp single copyprivate (e)
44 e++;
46 e++;
50 void
51 bar (void)
53 int a[4];
54 _Atomic int b = 1, c = 2, f = 8, g = 8, h = 0;
55 _Atomic int d, e[3];
56 int *_Atomic p;
57 _Atomic int *_Atomic q;
58 int i, j;
59 p = a;
60 q = e;
61 #pragma omp target teams map (tofrom: a[b:c]) num_teams (b) thread_limit (c)
62 a[1]++;
63 #pragma omp target device(h)
65 #pragma omp task depend (inout: a[b:c])
67 #pragma omp task depend (out: d, e[b:c]) priority (b)
69 #pragma omp task depend (out: p[b:c])
71 #pragma omp task depend (out: q[b:c])
73 #pragma omp taskloop num_tasks (c)
74 for (i = 0; i < 16; i++)
76 #pragma omp taskloop grainsize (c)
77 for (i = 0; i < 16; i++)
79 #pragma omp parallel for schedule (dynamic, b)
80 for (i = 0; i < 16; i++)
82 j = 0;
83 #pragma omp simd linear(j:b)
84 for (i = 0; i < 16; i++)
85 j += b;
86 j = 4;
87 #pragma omp atomic read
88 b = j;
89 #pragma omp atomic write
90 j = c;
91 #pragma omp atomic
92 j += c;
93 #pragma omp atomic capture
94 b = j += c;
95 #pragma omp atomic capture
96 b = ++j;
97 #pragma omp atomic capture
98 { b = j; j = c; }
99 #pragma omp atomic capture
100 { b = j; j++; }
101 #pragma omp atomic capture
102 { j *= c; b = j; }