/* Verify OMP instances of variables with address space. */ | |
/* { dg-do run { target i?86-*-* x86_64-*-* } } */ | |
/* { dg-require-effective-target offload_device_nonshared_as } */ | |
#include <assert.h> | |
int __seg_fs a; | |
int | |
main (void) | |
{ | |
// a = 123; // SIGSEGV | |
int b; | |
#pragma omp target map(alloc: a) map(from: b) | |
{ | |
a = 321; // no SIGSEGV (given 'offload_device_nonshared_as') | |
asm volatile ("" : : "g" (&a) : "memory"); | |
b = a; | |
} | |
assert (b == 321); | |
return 0; | |
} |