On 06.09.22 09:49, Jakub Jelinek wrote:
On Tue, Sep 06, 2022 at 07:54:05AM +0800, haochen.jiang via Gcc-patches wrote:
Fortran/openmp: Partial OpenMP 5.2 doacross and omp_cur_iteration support
caused
FAIL: gfortran.dg/gomp/doacross-5.f90 -O (test for errors, line 28)
Seems this is still being diagnosed in the FE when it should be deferred to
the middle-end now (only when we find out if it is doacross or not).
I concur – and at some point during patch writing, I had this snippeted
removed (given that the testcase required it) – but for some reasons, it
got mangled in again. I have now removed it again/in GCC mainline –
after successful regtesting.
Committed as r13-2491-gd6582c662ca0da05c74fa3183e1bc2cadcb21424
Tobias
-----------------
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
commit d6582c662ca0da05c74fa3183e1bc2cadcb21424
Author: Tobias Burnus <tob...@codesourcery.com>
Date: Tue Sep 6 10:02:13 2022 +0200
Fix Fortran/openmp: Partial OpenMP 5.2 doacross
This removed a checking snippet which accidentally was left in in commit
r13-2446-g938cda536019cd6a1bc0dd2346381185b420bbf8 ; this caused
fails in gfortran.dg/gomp/doacross-5.f90 (added in that very commit).
Note that a similar but refined check is now done in the middle end.
(The ME version additionally checks whether doacross is present.)
gcc/fortran/
* openmp.cc (resolve_omp_clauses): Remove ordered/linear
check as it is handled now in the middle end.
---
gcc/fortran/openmp.cc | 4 ----
1 file changed, 4 deletions(-)
diff --git a/gcc/fortran/openmp.cc b/gcc/fortran/openmp.cc
index 5142fd7c608..457e983663b 100644
--- a/gcc/fortran/openmp.cc
+++ b/gcc/fortran/openmp.cc
@@ -7625,10 +7625,6 @@ resolve_omp_clauses (gfc_code *code, gfc_omp_clauses *omp_clauses,
linear_op = n->u.linear.op;
}
}
- else if (omp_clauses->orderedc)
- gfc_error ("LINEAR clause specified together with "
- "ORDERED clause with argument at %L",
- &n->where);
else if (n->u.linear.op != OMP_LINEAR_REF
&& n->sym->ts.type != BT_INTEGER)
gfc_error ("LINEAR variable %qs must be INTEGER "