50 lines · c
1// RUN: %libomptarget-compile-run-and-check-generic2 3// XFAIL: *4 5#include <assert.h>6#include <omp.h>7#include <stdint.h>8#include <stdio.h>9#include <stdlib.h>10 11typedef void *cudaStream_t;12 13int main() {14 15 int device_id = omp_get_default_device();16 17#pragma omp parallel master18 {19 20 double D0, D2;21 omp_interop_t interop;22 23#pragma omp interop init(targetsync : interop) device(device_id) nowait24 assert(interop != NULL);25 26 int err;27 for (int i = omp_ipr_first; i < 0; i++) {28 const char *n =29 omp_get_interop_name(interop, (omp_interop_property_t)(i));30 long int li =31 omp_get_interop_int(interop, (omp_interop_property_t)(i), &err);32 const void *p =33 omp_get_interop_ptr(interop, (omp_interop_property_t)(i), &err);34 const char *s =35 omp_get_interop_str(interop, (omp_interop_property_t)(i), &err);36 const char *n1 =37 omp_get_interop_type_desc(interop, (omp_interop_property_t)(i));38 }39#pragma omp interop use(interop) depend(in : D0, D2)40 41 cudaStream_t stream =42 (omp_get_interop_ptr(interop, omp_ipr_targetsync, NULL));43 assert(stream != NULL);44 45#pragma omp interop destroy(interop) depend(in : D0, D2) device(device_id)46 }47 printf("PASS\n");48}49// CHECK: PASS50