77 lines · c
1// --------------------------------------------------2// Check 'to' and extends before3// --------------------------------------------------4 5// RUN: %libomptarget-compile-generic \6// RUN: -DCLAUSE=to -DEXTENDS=BEFORE7// RUN: %libomptarget-run-generic 2>&1 \8// RUN: | %fcheck-generic9 10// --------------------------------------------------11// Check 'from' and extends before12// --------------------------------------------------13 14// RUN: %libomptarget-compile-generic \15// RUN: -DCLAUSE=from -DEXTENDS=BEFORE16// RUN: %libomptarget-run-generic 2>&1 \17// RUN: | %fcheck-generic18 19// --------------------------------------------------20// Check 'to' and extends after21// --------------------------------------------------22 23// RUN: %libomptarget-compile-generic \24// RUN: -DCLAUSE=to -DEXTENDS=AFTER25// RUN: %libomptarget-run-generic 2>&1 \26// RUN: | %fcheck-generic27 28// --------------------------------------------------29// Check 'from' and extends after30// --------------------------------------------------31 32// RUN: %libomptarget-compile-generic \33// RUN: -DCLAUSE=from -DEXTENDS=AFTER34// RUN: %libomptarget-run-generic 2>&1 \35// RUN: | %fcheck-generic36 37// END.38 39#include <stdio.h>40 41#define BEFORE 042#define AFTER 143 44#if EXTENDS == BEFORE45#define SMALL 2 : 346#define LARGE 0 : 547#elif EXTENDS == AFTER48#define SMALL 0 : 349#define LARGE 0 : 550#else51#error EXTENDS undefined52#endif53 54int main() {55 int arr[5];56 57 // CHECK-NOT: omptarget58#pragma omp target data map(alloc : arr[LARGE])59 {60#pragma omp target update CLAUSE(arr[SMALL])61 }62 63 // CHECK: success64 fprintf(stderr, "success\n");65 66 // CHECK-NOT: omptarget67#pragma omp target data map(alloc : arr[SMALL])68 {69#pragma omp target update CLAUSE(arr[LARGE])70 }71 72 // CHECK: success73 fprintf(stderr, "success\n");74 75 return 0;76}77