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

Reply via email to