[Openmp-commits] [openmp] r343344 - [OPENMP] Add the test to check that the libomptarget does not cause
Alexey Bataev via Openmp-commits
openmp-commits at lists.llvm.org
Fri Sep 28 10:13:11 PDT 2018
Author: abataev
Date: Fri Sep 28 10:13:11 2018
New Revision: 343344
URL: http://llvm.org/viewvc/llvm-project?rev=343344&view=rev
Log:
[OPENMP] Add the test to check that the libomptarget does not cause
infinite loop on removing non-mapped pointer-with-object.
Added test to check that libomptarget does not cause infinite loop when
trying to unmap the pointer-with-object data that was not previously
mapped.
Modified:
openmp/trunk/libomptarget/test/mapping/pr38704.c
Modified: openmp/trunk/libomptarget/test/mapping/pr38704.c
URL: http://llvm.org/viewvc/llvm-project/openmp/trunk/libomptarget/test/mapping/pr38704.c?rev=343344&r1=343343&r2=343344&view=diff
==============================================================================
--- openmp/trunk/libomptarget/test/mapping/pr38704.c (original)
+++ openmp/trunk/libomptarget/test/mapping/pr38704.c Fri Sep 28 10:13:11 2018
@@ -16,16 +16,20 @@ typedef struct {
} StructWithPtrs;
int main(int argc, char *argv[]) {
- StructWithPtrs s;
+ StructWithPtrs s, s2;
s.ptr1 = malloc(sizeof(int));
s.ptr2 = malloc(2 * sizeof(int));
+ s2.ptr1 = malloc(sizeof(int));
+ s2.ptr2 = malloc(2 * sizeof(int));
+#pragma omp target enter data map(to: s2.ptr2[0:1])
#pragma omp target map(s.ptr1[0:1], s.ptr2[0:2])
{
s.ptr1[0] = 1;
s.ptr2[0] = 2;
s.ptr2[1] = 3;
}
+#pragma omp target exit data map(from: s2.ptr1[0:1], s2.ptr2[0:1])
// CHECK: s.ptr1[0] = 1
// CHECK: s.ptr2[0] = 2
@@ -36,6 +40,8 @@ int main(int argc, char *argv[]) {
free(s.ptr1);
free(s.ptr2);
+ free(s2.ptr1);
+ free(s2.ptr2);
return 0;
}
More information about the Openmp-commits
mailing list