https://gcc.gnu.org/g:76e0b6c20dc54d7a6f704a4bddd824f4c8d90c2c

commit 76e0b6c20dc54d7a6f704a4bddd824f4c8d90c2c
Author: Tobias Burnus <tbur...@baylibre.com>
Date:   Fri Jun 6 15:15:03 2025 +0200

    libgomp.c/target-map-zero-sized-3.c: Fix code for non-USM offload [PR120530]
    
    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)

Diff:
---
 libgomp/testsuite/libgomp.c/target-map-zero-sized-3.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/libgomp/testsuite/libgomp.c/target-map-zero-sized-3.c 
b/libgomp/testsuite/libgomp.c/target-map-zero-sized-3.c
index f968bd377c2c..580c6ad89bf5 100644
--- a/libgomp/testsuite/libgomp.c/target-map-zero-sized-3.c
+++ b/libgomp/testsuite/libgomp.c/target-map-zero-sized-3.c
@@ -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);

Reply via email to