Mercurial > hg > CbC > CbC_gcc
view libgomp/testsuite/libgomp.c/target-39.c @ 152:2b5abeee2509
update gcc11
author | anatofuz |
---|---|
date | Mon, 25 May 2020 07:50:57 +0900 |
parents | |
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; }