Hi! On 2022-02-15T11:26:12+0100, Tobias Burnus <tob...@codesourcery.com> wrote: > As found by Marcel, the 'depend' clause was differently handled in > 'omp depobj(...) depend(...)' and in 'omp task depend(...)'.
(Cross-referencing GCC PR104545 "[OpenMP & Fortran] Pointers issue in combination of depobj construct and depend clause with depobj dependence-type".) > The attached patch [...] > gcc/fortran/trans-openmp.cc | 45 ++++- > gcc/testsuite/gfortran.dg/gomp/depend-4.f90 | 240 > +++++++++++++++++++++++++ > libgomp/testsuite/libgomp.fortran/depend-4.f90 | 107 +++++++++++ The actual commit r12-7242-g3939c1b11279dc950d2f160eb940dd791f7b40f1 "Fortran/OpenMP: Fix depend-clause handling" also has: | gcc/testsuite/gfortran.dg/gomp/depend-5.f90 | 82 +++++++++ ... (yay for more test cases!), and that one I see partially FAIL in x86_64 '-m32'/'-mx32' testing: FAIL: gfortran.dg/gomp/depend-5.f90 -O scan-tree-dump-times original "#pragma omp task depend\\(depobj:\\(\\*\\(integer\\(kind=16\\)\\[0:\\] \\* restrict\\) aaa.data\\)\\[aaa.offset \\+ 2\\]\\)" 1 FAIL: gfortran.dg/gomp/depend-5.f90 -O scan-tree-dump-times original "#pragma omp task depend\\(depobj:\\(\\*\\(integer\\(kind=16\\)\\[0:\\] \\* restrict\\) daaa->data\\)\\[daaa->offset \\+ 2\\]\\)" 1 FAIL: gfortran.dg/gomp/depend-5.f90 -O scan-tree-dump-times original "#pragma omp task depend\\(depobj:\\(\\*\\(integer\\(kind=16\\)\\[0:\\] \\* restrict\\) doaaa->data\\)\\[doaaa->offset \\+ 2\\]\\)" 1 PASS: gfortran.dg/gomp/depend-5.f90 -O scan-tree-dump-times original "#pragma omp task depend\\(depobj:\\(\\*daa\\)\\[1\\]\\)" 1 PASS: gfortran.dg/gomp/depend-5.f90 -O scan-tree-dump-times original "#pragma omp task depend\\(depobj:\\(\\*doaa\\)\\[1\\]\\)" 1 FAIL: gfortran.dg/gomp/depend-5.f90 -O scan-tree-dump-times original "#pragma omp task depend\\(depobj:\\*\\(integer\\(kind=16\\) \\*\\) \\(aap.data \\+ \\(sizetype\\) \\(\\(aap.offset \\+ aap.dim\\[0\\].stride \\* 2\\) \\* aap.span\\)\\)\\)" 1 FAIL: gfortran.dg/gomp/depend-5.f90 -O scan-tree-dump-times original "#pragma omp task depend\\(depobj:\\*\\(integer\\(kind=16\\) \\*\\) \\(daap->data \\+ \\(sizetype\\) \\(\\(daap->offset \\+ daap->dim\\[0\\].stride \\* 2\\) \\* daap->span\\)\\)\\)" 1 FAIL: gfortran.dg/gomp/depend-5.f90 -O scan-tree-dump-times original "#pragma omp task depend\\(depobj:\\*\\(integer\\(kind=16\\) \\*\\) \\(doaap->data \\+ \\(sizetype\\) \\(\\(doaap->offset \\+ doaap->dim\\[0\\].stride \\* 2\\) \\* doaap->span\\)\\)\\)" 1 PASS: gfortran.dg/gomp/depend-5.f90 -O scan-tree-dump-times original "#pragma omp task depend\\(depobj:\\*\\*dosa\\)" 1 PASS: gfortran.dg/gomp/depend-5.f90 -O scan-tree-dump-times original "#pragma omp task depend\\(depobj:\\*\\*dosp\\)" 1 PASS: gfortran.dg/gomp/depend-5.f90 -O scan-tree-dump-times original "#pragma omp task depend\\(depobj:\\*\\*dsa\\)" 1 PASS: gfortran.dg/gomp/depend-5.f90 -O scan-tree-dump-times original "#pragma omp task depend\\(depobj:\\*\\*dsp\\)" 1 PASS: gfortran.dg/gomp/depend-5.f90 -O scan-tree-dump-times original "#pragma omp task depend\\(depobj:\\*doss\\)" 1 PASS: gfortran.dg/gomp/depend-5.f90 -O scan-tree-dump-times original "#pragma omp task depend\\(depobj:\\*dss\\)" 1 PASS: gfortran.dg/gomp/depend-5.f90 -O scan-tree-dump-times original "#pragma omp task depend\\(depobj:\\*sa\\)" 1 PASS: gfortran.dg/gomp/depend-5.f90 -O scan-tree-dump-times original "#pragma omp task depend\\(depobj:\\*sp\\)" 1 PASS: gfortran.dg/gomp/depend-5.f90 -O scan-tree-dump-times original "#pragma omp task depend\\(depobj:aa\\[1\\]\\)" 1 PASS: gfortran.dg/gomp/depend-5.f90 -O scan-tree-dump-times original "#pragma omp task depend\\(depobj:ss\\)" 1 PASS: gfortran.dg/gomp/depend-5.f90 -O (test for excess errors) 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