repo.or.cz
/
official-gcc.git
/
blob
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
log
|
graphiclog1
|
graphiclog2
|
commit
|
commitdiff
|
tree
|
refs
|
edit
|
fork
blame
|
history
|
raw
|
HEAD
Fix wrong assertion for LIPO
[official-gcc.git]
/
gcc-4_7-mobile
/
libgomp
/
testsuite
/
libgomp.c++
/
ctor-1.C
blob
2ad3b3a6efcc62aaed512be009a9f2f45724c1a0
1
// { dg-do run }
2
3
#include <omp.h>
4
#include <assert.h>
5
6
struct B
7
{
8
static int icount;
9
static int dcount;
10
static int xcount;
11
12
B();
13
B(const B &);
14
~B();
15
B& operator=(const B &);
16
void doit();
17
};
18
19
int B::icount;
20
int B::dcount;
21
int B::xcount;
22
23
B::B()
24
{
25
#pragma omp atomic
26
icount++;
27
}
28
29
B::~B()
30
{
31
#pragma omp atomic
32
dcount++;
33
}
34
35
void B::doit()
36
{
37
#pragma omp atomic
38
xcount++;
39
}
40
41
static int nthreads;
42
43
void foo()
44
{
45
B b;
46
#pragma omp parallel private(b)
47
{
48
#pragma omp master
49
nthreads = omp_get_num_threads ();
50
b.doit();
51
}
52
}
53
54
int main()
55
{
56
omp_set_dynamic (0);
57
omp_set_num_threads (4);
58
foo();
59
60
assert (B::xcount == nthreads);
61
assert (B::icount == nthreads+1);
62
assert (B::dcount == nthreads+1);
63
64
return 0;
65
}