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++
/
pr26943.C
blob
07b7b5dbf74cb14592491f0ed57347c8d6b3551c
1
// PR c++/26943
2
// { dg-do run }
3
4
#include <assert.h>
5
#include <unistd.h>
6
7
struct S
8
{
9
public:
10
int x;
11
S () : x(-1) { }
12
S (const S &);
13
S& operator= (const S &);
14
void test ();
15
};
16
17
static volatile int hold;
18
19
S::S (const S &s)
20
{
21
#pragma omp master
22
sleep (1);
23
24
assert (s.x == -1);
25
x = 0;
26
}
27
28
S&
29
S::operator= (const S& s)
30
{
31
assert (s.x == 1);
32
x = 2;
33
return *this;
34
}
35
36
void
37
S::test ()
38
{
39
assert (x == 0);
40
x = 1;
41
}
42
43
static S x;
44
45
void
46
foo ()
47
{
48
#pragma omp sections firstprivate(x) lastprivate(x)
49
{
50
x.test();
51
}
52
}
53
54
int
55
main ()
56
{
57
#pragma omp parallel num_threads(2)
58
foo();
59
60
assert (x.x == 2);
61
return 0;
62
}