[Bug fortran/77652] Invalid rank error in ASSOCIATED when rank is remapped
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77652 anlauf at gcc dot gnu.org changed: What|Removed |Added Resolution|--- |INVALID Status|WAITING |RESOLVED --- Comment #9 from anlauf at gcc dot gnu.org --- As the inquiry to SC22WG5 resulted in a comment that different ranks should not be allowed, I've reverted the commit as r13-2118: commit ca170ed9f8a086ca7e1eec841882b6bed9ec1a3a Author: Harald Anlauf Date: Thu Aug 18 21:24:29 2022 +0200 Revert "Fortran: fix invalid rank error in ASSOCIATED when rank is remapped [PR77652]" This reverts commit 0110cfd5449bae3a772f45ea2e4c5dab5b7a8ccd. See https://gcc.gnu.org/pipermail/fortran/2022-August/058049.html for details. Will close this PR therefore as invalid (at least for <= Fortran 2018).
[Bug fortran/77652] Invalid rank error in ASSOCIATED when rank is remapped
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77652 --- Comment #8 from anlauf at gcc dot gnu.org --- I have pushed a relaxed version of the checks as agreed upon on the ML. As compilers seem to differ here (we are now closer to Crayftn and Nvidia), and as suggested by Toon, Mikael plans to submit an interpretation request. We might want to keep this PR open to track updates on the issue.
[Bug fortran/77652] Invalid rank error in ASSOCIATED when rank is remapped
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77652 --- Comment #7 from CVS Commits --- The master branch has been updated by Harald Anlauf : https://gcc.gnu.org/g:0110cfd5449bae3a772f45ea2e4c5dab5b7a8ccd commit r13-1904-g0110cfd5449bae3a772f45ea2e4c5dab5b7a8ccd Author: Harald Anlauf Date: Wed Jul 27 21:34:22 2022 +0200 Fortran: fix invalid rank error in ASSOCIATED when rank is remapped [PR77652] gcc/fortran/ChangeLog: PR fortran/77652 * check.cc (gfc_check_associated): Make the rank check of POINTER vs. TARGET match the allowed forms of pointer assignment for the selected Fortran standard. gcc/testsuite/ChangeLog: PR fortran/77652 * gfortran.dg/associated_target_9a.f90: New test. * gfortran.dg/associated_target_9b.f90: New test.
[Bug fortran/77652] Invalid rank error in ASSOCIATED when rank is remapped
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77652 anlauf at gcc dot gnu.org changed: What|Removed |Added Status|ASSIGNED|WAITING --- Comment #6 from anlauf at gcc dot gnu.org --- The following thread in the Intel compiler forum suggests that the code in comment#0 is likely invalid: https://community.intel.com/t5/Intel-Fortran-Compiler/Intel-rejects-ASSOCIATED-pointer-target-for-non-equal-ranks/m-p/1402799/highlight/true#M162159 Withdrawing the patch. @Paul: shall we mark the PR as invalid?
[Bug fortran/77652] Invalid rank error in ASSOCIATED when rank is remapped
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77652 anlauf at gcc dot gnu.org changed: What|Removed |Added Status|NEW |ASSIGNED Assignee|unassigned at gcc dot gnu.org |anlauf at gcc dot gnu.org --- Comment #5 from anlauf at gcc dot gnu.org --- Submitted version: https://gcc.gnu.org/pipermail/fortran/2022-July/058012.html
[Bug fortran/77652] Invalid rank error in ASSOCIATED when rank is remapped
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77652 anlauf at gcc dot gnu.org changed: What|Removed |Added CC||anlauf at gcc dot gnu.org Keywords||rejects-valid --- Comment #4 from anlauf at gcc dot gnu.org --- The following patch seems to work: diff --git a/gcc/fortran/check.cc b/gcc/fortran/check.cc index 91d87a1b2c1..6365c4ab809 100644 --- a/gcc/fortran/check.cc +++ b/gcc/fortran/check.cc @@ -1502,8 +1502,17 @@ gfc_check_associated (gfc_expr *pointer, gfc_expr *target) t = false; /* F2018 C838 explicitly allows an assumed-rank variable as the first argument of intrinsic inquiry functions. */ - if (pointer->rank != -1 && !rank_check (target, 0, pointer->rank)) -t = false; + if (pointer->rank != -1 && target->rank != 1 && pointer->rank != target->rank) +{ + if (gfc_option.warn_std & GFC_STD_F2003) + { + if (!rank_check (target, 0, pointer->rank)) + t = false; + } + else if (!gfc_notify_std (GFC_STD_F2008, "Rank remapping target is not " + "rank 1 at %L", &target->where)) + t = false; +} if (target->rank > 0 && target->ref) { for (i = 0; i < target->rank; i++) Needs regtesting.
[Bug fortran/77652] Invalid rank error in ASSOCIATED when rank is remapped
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77652 sandra at gcc dot gnu.org changed: What|Removed |Added CC||sandra at gcc dot gnu.org --- Comment #3 from sandra at gcc dot gnu.org --- Still present on trunk.
[Bug fortran/77652] Invalid rank error in ASSOCIATED when rank is remapped
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77652 Jürgen Reuter changed: What|Removed |Added CC||juergen.reuter at desy dot de --- Comment #2 from Jürgen Reuter --- This is still present in the current trunk.
[Bug fortran/77652] Invalid rank error in ASSOCIATED when rank is remapped
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77652 Dominique d'Humieres changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2016-09-19 Ever confirmed|0 |1 --- Comment #1 from Dominique d'Humieres --- Confirmed from 4.8 up to trunk (7.0).