blob: 2933839022bbdd7c88f2d223998375bb6d2a7156 [file] [log] [blame]
Jim Cownie18d84732014-05-10 17:02:09 +00001<ompts:test>
2<ompts:testdescription>Test which checks the omp parallel sections firstprivate directive.</ompts:testdescription>
3<ompts:ompversion>2.0</ompts:ompversion>
4<ompts:directive>omp parallel sections firstprivate</ompts:directive>
5<ompts:dependences>omp critical</ompts:dependences>
6<ompts:testcode>
7#include <stdio.h>
8#include "omp_testsuite.h"
9
10int <ompts:testcode:functionname>omp_parallel_sections_firstprivate</ompts:testcode:functionname>(FILE * logFile){
11 <ompts:orphan:vars>
12 int sum;
13 int sum0;
14 </ompts:orphan:vars>
15 int known_sum;
16 sum =7;
17 sum0=11;
18
19<ompts:orphan>
20#pragma omp parallel sections <ompts:check>firstprivate(sum0)</ompts:check><ompts:crosscheck>private(sum0)</ompts:crosscheck>
21 {
22#pragma omp section
23 {
24#pragma omp critical
25 {
26 sum= sum+sum0;
27 } /*end of critical */
28 }
29#pragma omp section
30 {
31#pragma omp critical
32 {
33 sum= sum+sum0;
34 } /*end of critical */
35 }
36#pragma omp section
37 {
38#pragma omp critical
39 {
40 sum= sum+sum0;
41 } /*end of critical */
42 }
43 } /*end of parallel sections*/
44</ompts:orphan>
45known_sum=11*3+7;
46return (known_sum==sum);
47} /* end of check_section_firstprivate*/
48</ompts:testcode>
49</ompts:test>