https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112316
Paul Thomas <pault at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Last reconfirmed| |2023-11-02 Ever confirmed|0 |1 Status|UNCONFIRMED |NEW --- Comment #1 from Paul Thomas <pault at gcc dot gnu.org> --- I can confirm this bug, of course. Thanks for the report. I temporary work around is to invert the order of the contained procedures. The problem is caused by a stupid (on my part :-( ) oversight: diff --git a/gcc/fortran/parse.cc b/gcc/fortran/parse.cc index e103ebee557..f88f9be3be8 100644 --- a/gcc/fortran/parse.cc +++ b/gcc/fortran/parse.cc @@ -5196,7 +5196,7 @@ parse_associate (void) } } - if (target->rank) + if (1) { int rank = 0; rank = target->rank; fixes the problem and regtests OK. The simplification that I effected with the offending patch has been completely spoiled by forgetting that one of the cases that was supposed to be fixed in the block following the condition above is that of target->rank = 0 and the associate variable having an array_spec. I will commit a cleaned up version as obvious first thing tomorrow morning. Sorry for the inconvenience. Paul