[Openmp-commits] [openmp] 3a1e06e - [OpenMP] Fix libomptarget test mapping/ompx_hold/struct.c
Joel E. Denny via Openmp-commits
openmp-commits at lists.llvm.org
Tue May 2 12:40:01 PDT 2023
Author: Joel E. Denny
Date: 2023-05-02T15:39:18-04:00
New Revision: 3a1e06e0e82c85f119520f1640b776ebf0204a8d
URL: https://github.com/llvm/llvm-project/commit/3a1e06e0e82c85f119520f1640b776ebf0204a8d
DIFF: https://github.com/llvm/llvm-project/commit/3a1e06e0e82c85f119520f1640b776ebf0204a8d.diff
LOG: [OpenMP] Fix libomptarget test mapping/ompx_hold/struct.c
For me, the test fails for nvptx64 offload. The problem was
introduced by D146838, which landed as 747af2415519. It tries to copy
a string constant's address from device to host and then print the
string. This patch copies the contents of the string instead.
Reviewed By: jdoerfert
Differential Revision: https://reviews.llvm.org/D149623
Added:
Modified:
openmp/libomptarget/test/mapping/ompx_hold/struct.c
Removed:
################################################################################
diff --git a/openmp/libomptarget/test/mapping/ompx_hold/struct.c b/openmp/libomptarget/test/mapping/ompx_hold/struct.c
index f61ba44dc2a3d..da2b38028762c 100644
--- a/openmp/libomptarget/test/mapping/ompx_hold/struct.c
+++ b/openmp/libomptarget/test/mapping/ompx_hold/struct.c
@@ -5,9 +5,16 @@
#include <stdio.h>
#pragma omp begin declare target
-char *N1, *N2;
+#define MAX_NAME_SIZE 100
+char N1[MAX_NAME_SIZE], N2[MAX_NAME_SIZE];
int V1, V2;
-#pragma omp declare target
+void copy_name(char *dst, char *src) {
+ int i;
+ for (i = 0; i < MAX_NAME_SIZE - 1 && src[i]; ++i)
+ dst[i] = src[i];
+ dst[i] = 0;
+}
+#pragma omp end declare target
#define CHECK_PRESENCE(Var1, Var2, Var3) \
printf(" presence of %s, %s, %s: %d, %d, %d\n", #Var1, #Var2, #Var3, \
@@ -19,12 +26,12 @@ int V1, V2;
printf(" values of %s, %s: %d, %d\n", N1, N2, (Var1), (Var2))
#define CHECK_VALUES_DELAYED(Var1, Var2) \
- N1 = #Var1; \
- N2 = #Var2; \
+ copy_name(N1, #Var1); \
+ copy_name(N2, #Var2); \
V1 = (Var1); \
V2 = (Var2);
-#define CHECK_DELAYED_VALUS() \
+#define CHECK_DELAYED_VALUES() \
_Pragma("omp target update from(N1, N2, V1, V2)") \
CHECK_VALUES_HELPER(N1, N2, V1, V2)
@@ -149,7 +156,7 @@ int main() {
// CHECK-NEXT: values of s.i, s.j: 21, 31
CHECK_VALUES_DELAYED(s.i, s.j);
}
- CHECK_DELAYED_VALUS();
+ CHECK_DELAYED_VALUES();
}
// CHECK-NEXT: presence of s, s.i, s.j: 0, 0, 0
// CHECK-NEXT: values of s.i, s.j: 21, 31
@@ -180,7 +187,7 @@ int main() {
// CHECK-NEXT: values of s.i, s.j: 21, 31
CHECK_VALUES_DELAYED(s.i, s.j);
}
- CHECK_DELAYED_VALUS();
+ CHECK_DELAYED_VALUES();
}
// CHECK-NEXT: presence of s, s.i, s.j: 0, 0, 0
// CHECK-NEXT: values of s.i, s.j: 21, 31
More information about the Openmp-commits
mailing list