LLVM OpenMP
20.0.0git
runtime
test
worksharing
sections
omp_section_private.c
Go to the documentation of this file.
1
// RUN: %libomp-compile-and-run
2
#include <stdio.h>
3
#include "
omp_testsuite.h
"
4
5
int
test_omp_section_private
()
6
{
7
int
sum
;
8
int
sum0
;
9
int
i
;
10
int
known_sum;
11
12
sum
= 7;
13
sum0
= 0;
14
15
#pragma omp parallel
16
{
17
#pragma omp sections private(sum0,i)
18
{
19
#pragma omp section
20
{
21
sum0
= 0;
22
for
(
i
= 1;
i
< 400;
i
++)
23
sum0
=
sum0
+
i
;
24
#pragma omp critical
25
{
26
sum
=
sum
+
sum0
;
27
}
28
}
29
#pragma omp section
30
{
31
sum0
= 0;
32
for
(
i
= 400;
i
< 700;
i
++)
33
sum0
=
sum0
+
i
;
34
#pragma omp critical
35
{
36
sum
=
sum
+
sum0
;
37
}
38
}
39
#pragma omp section
40
{
41
sum0
= 0;
42
for
(
i
= 700;
i
< 1000;
i
++)
43
sum0
=
sum0
+
i
;
44
#pragma omp critical
45
{
46
sum
=
sum
+
sum0
;
47
}
48
}
49
}
/*end of sections*/
50
}
/* end of parallel */
51
known_sum = (999 * 1000) / 2 + 7;
52
return
(known_sum ==
sum
);
53
}
/* end of check_section_private*/
54
55
int
main
()
56
{
57
int
i
;
58
int
num_failed=0;
59
60
for
(
i
= 0;
i
<
REPETITIONS
;
i
++) {
61
if
(!
test_omp_section_private
()) {
62
num_failed++;
63
}
64
}
65
return
num_failed;
66
}
i
#define i
Definition:
kmp_stub.cpp:87
sum
int sum
Definition:
omp_for_schedule_runtime.c:19
test_omp_section_private
int test_omp_section_private()
Definition:
omp_section_private.c:5
main
int main()
Definition:
omp_section_private.c:55
omp_testsuite.h
REPETITIONS
#define REPETITIONS
Definition:
omp_testsuite.h:13
sum0
static int sum0
Definition:
omp_threadprivate.c:14
Generated on Wed Jan 29 2025 20:58:03 for LLVM OpenMP by
1.9.6