]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
libgomp.c/target-map-zero-sized-3.c: Fix code for non-USM offload [PR120530]
authorTobias Burnus <tburnus@baylibre.com>
Fri, 6 Jun 2025 13:15:03 +0000 (15:15 +0200)
committerTobias Burnus <tburnus@baylibre.com>
Fri, 6 Jun 2025 13:48:47 +0000 (15:48 +0200)
A mapping clause was missing, causing the code to fail with offloading
when a host pointer was not device accessible.

libgomp/ChangeLog:

PR target/120530
* testsuite/libgomp.c/target-map-zero-sized-3.c (main): Add missing
map clause; remove unused variable.

(cherry picked from commit 16c742e1079e838b920a1b215af17828da7c6365)

libgomp/testsuite/libgomp.c/target-map-zero-sized-3.c

index f968bd377c2cd18e0b8e274afd8cd9c2638709e2..580c6ad89bf5200dea0eebb47df3aabd556240b4 100644 (file)
@@ -1,7 +1,7 @@
 int
 main ()
 {
-  int i, n, n2;
+  int i, n;
   int data[] = {1,2};
   struct S {
     int **ptrset;
@@ -33,16 +33,17 @@ main ()
 
   i = 1;
   n = 0;
-  n2 = 2;
+  #pragma omp target enter data map(data)
   #pragma omp target enter data map(sptr1[:1], sptr1->ptrset[:3], sptr1->ptrset2[:3])
   #pragma omp target enter data map(sptr1->ptrset[i][:n], sptr1->ptrset2[i][:n])
 
-  #pragma omp target
+  #pragma omp target map(sptr1->ptrset[i][:n], sptr1->ptrset2[i][:n])
     if (sptr1->ptrset2[1][0] != 1 || sptr1->ptrset2[1][1] != 2)
       __builtin_abort ();
 
   #pragma omp target exit data map(sptr1->ptrset[i][:n], sptr1->ptrset2[i][:n])
   #pragma omp target exit data map(sptr1[:1], sptr1->ptrset[:3], sptr1->ptrset2[:3])
+  #pragma omp target exit data map(data)
 
   __builtin_free (s1.ptrset);
   __builtin_free (s1.ptrset2);