Mercurial > hg > CbC > CbC_gcc
view libgomp/testsuite/libgomp.c/target-39.c @ 158:494b0b89df80 default tip
...
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 25 May 2020 18:13:55 +0900 |
parents | 2b5abeee2509 |
children |
line wrap: on
line source
/* { dg-do run } */ /* { dg-options "-O0" } */ extern void abort (void); volatile int v; #pragma omp declare target to (v) typedef void (*fnp1) (void); typedef fnp1 (*fnp2) (void); void f1 (void) { v++; } void f2 (void) { v += 4; } void f3 (void) { v += 16; f1 (); } fnp1 f4 (void) { v += 64; return f2; } int a = 1; int *b = &a; int **c = &b; fnp2 f5 (void) { f3 (); return f4; } #pragma omp declare target to (c, f5) int main () { int err = 0; #pragma omp target map(from:err) { volatile int xa; int *volatile xb; int **volatile xc; fnp2 xd; fnp1 xe; err = 0; xa = a; err |= xa != 1; xb = b; err |= xb != &a; xc = c; err |= xc != &b; xd = f5 (); err |= v != 17; xe = xd (); err |= v != 81; xe (); err |= v != 85; } if (err) abort (); return 0; }