Hi all,
attached patch is the last one the meta-bug 87477 ASSOCIATE depends on. The
resolution was already given in the PR, so I just beautified it and made patch
for it. I tried to come up with a testcase as well as Harald has, but had no
luck with it. I see less harm in reseting the flag in the error case than not
to do it.
Regtests ok on x86_64-pc-linux-gnu / Fedora 39. Ok for mainline?
Regards,
Andre
--
Andre Vehreschild * Email: vehre ad gmx dot de
From 02e96672b2c9891ade40497298e2c69652e3d321 Mon Sep 17 00:00:00 2001
From: Andre Vehreschild <[email protected]>
Date: Tue, 13 Aug 2024 15:06:56 +0200
Subject: [PATCH] [Fortran] Prevent future proc_ptr parsing issues in associate
[PR102973]
A global variable is set when proc_ptr parsing in an associate is
expected. In the case of an error, that flag was not reset, which is
fixed now.
gcc/fortran/ChangeLog:
PR fortran/102973
* match.cc (gfc_match_associate): Reset proc_ptr parsing flag on
error.
---
gcc/fortran/match.cc | 1 +
1 file changed, 1 insertion(+)
diff --git a/gcc/fortran/match.cc b/gcc/fortran/match.cc
index 4acdb146439..d30a98f48fa 100644
--- a/gcc/fortran/match.cc
+++ b/gcc/fortran/match.cc
@@ -1932,6 +1932,7 @@ gfc_match_associate (void)
gfc_matching_procptr_assignment = 1;
if (gfc_match (" %e", &newAssoc->target) != MATCH_YES)
{
+ gfc_matching_procptr_assignment = 0;
gfc_error ("Invalid association target at %C");
goto assocListError;
}
--
2.46.0