Hi! On 2022-11-02T21:15:31+0100, I wrote: > On 2022-11-02T21:10:54+0100, I wrote: >> On 2022-11-02T21:04:56+0100, I wrote: >>> --- /dev/null >>> +++ b/libgomp/testsuite/libgomp.oacc-fortran/declare-allocatable-1.f90 >>> @@ -0,0 +1,268 @@ >>> +! Test OpenACC 'declare create' with allocatable arrays. >>> + >>> +! { dg-do run } >>> + >>> +!TODO-OpenACC-declare-allocate >>> +! Not currently implementing correct '-DACC_MEM_SHARED=0' behavior: >>> +! Missing support for OpenACC "Changes from Version 2.0 to 2.5": >>> +! "The 'declare create' directive with a Fortran 'allocatable' has new behavior". >>> +! { dg-xfail-run-if TODO { *-*-* } { -DACC_MEM_SHARED=0 } } >>> + >>> +[...] >> >> Getting rid of the "'dg-xfail-run-if' for '-DACC_MEM_SHARED=0'" via a >> work around (as seen in real-world code), I've pushed to master branch >> commit 59c6c5dbf267cd9d0a8df72b2a5eb5657b64268e >> "Add 'libgomp.oacc-fortran/declare-allocatable-1-runtime.f90'" > >> ... which is 'libgomp.oacc-fortran/declare-allocatable-1.f90' adjusted >> for missing support for OpenACC "Changes from Version 2.0 to 2.5": >> "The 'declare create' directive with a Fortran 'allocatable' has new behavior". >> Thus, after 'allocate'/before 'deallocate', call 'acc_create'/'acc_delete' >> manually. > > A similar test case, but with different focus, I've pushed to master > branch in commit abeaf3735fe2568b9d5b8096318da866b1fe1e5c > "Add 'libgomp.oacc-fortran/declare-allocatable-array_descriptor-1-runtime.f90'", > see attached. > --- /dev/null > +++ b/libgomp/testsuite/libgomp.oacc-fortran/declare-allocatable-array_descriptor-1-runtime.f90 > @@ -0,0 +1,402 @@ > +! Test OpenACC 'declare create' with allocatable arrays. > + > +! { dg-do run } > + > +! Note that we're not testing OpenACC semantics here, but rather documenting > +! current GCC behavior, specifically, behavior concerning updating of > +! host/device array descriptors. > +! { dg-skip-if n/a { *-*-* } { -DACC_MEM_SHARED=1 } } > + > +!TODO-OpenACC-declare-allocate > +! Missing support for OpenACC "Changes from Version 2.0 to 2.5": > +! "The 'declare create' directive with a Fortran 'allocatable' has new behavior". > +! Thus, after 'allocate'/before 'deallocate', call 'acc_create'/'acc_delete' > +! manually. If instead of calling 'acc_create'/'acc_delete' we'd like to use '!$acc enter data create'/'!$acc exit data delete', we run into "[gfortran + OpenACC] Allocate in module causes refcount error". Pushed to master branchcommit da8e0e1191c5512244a752b30dea0eba83e3d10c "Support OpenACC 'declare create' with Fortran allocatable arrays, part I [PR106643]", see attached. Grüße Thomas ----------------- Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstraße 201, 80634 München; Gesellschaft mit beschränkter Haftung; Geschäftsführer: Thomas Heurung, Frank Thürauf; Sitz der Gesellschaft: München; Registergericht München, HRB 106955