Mercurial > hg > CbC > CbC_gcc
comparison libgomp/testsuite/libgomp.c/target-39.c @ 152:2b5abeee2509
update gcc11
author | anatofuz |
---|---|
date | Mon, 25 May 2020 07:50:57 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
145:1830386684a0 | 152:2b5abeee2509 |
---|---|
1 /* { dg-do run } */ | |
2 /* { dg-options "-O0" } */ | |
3 | |
4 extern void abort (void); | |
5 volatile int v; | |
6 #pragma omp declare target to (v) | |
7 typedef void (*fnp1) (void); | |
8 typedef fnp1 (*fnp2) (void); | |
9 void f1 (void) { v++; } | |
10 void f2 (void) { v += 4; } | |
11 void f3 (void) { v += 16; f1 (); } | |
12 fnp1 f4 (void) { v += 64; return f2; } | |
13 int a = 1; | |
14 int *b = &a; | |
15 int **c = &b; | |
16 fnp2 f5 (void) { f3 (); return f4; } | |
17 #pragma omp declare target to (c, f5) | |
18 | |
19 int | |
20 main () | |
21 { | |
22 int err = 0; | |
23 #pragma omp target map(from:err) | |
24 { | |
25 volatile int xa; | |
26 int *volatile xb; | |
27 int **volatile xc; | |
28 fnp2 xd; | |
29 fnp1 xe; | |
30 err = 0; | |
31 xa = a; | |
32 err |= xa != 1; | |
33 xb = b; | |
34 err |= xb != &a; | |
35 xc = c; | |
36 err |= xc != &b; | |
37 xd = f5 (); | |
38 err |= v != 17; | |
39 xe = xd (); | |
40 err |= v != 81; | |
41 xe (); | |
42 err |= v != 85; | |
43 } | |
44 if (err) | |
45 abort (); | |
46 return 0; | |
47 } |