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);