https://gcc.gnu.org/g:ed0c185ac8b487a1647248799c5d4a915c6cfa3a

commit r16-6409-ged0c185ac8b487a1647248799c5d4a915c6cfa3a
Author: Jose E. Marchesi <[email protected]>
Date:   Sat Dec 27 11:14:02 2025 +0100

    a68: scope access clauses
    
    Signed-off-by: Jose E. Marchesi <[email protected]>
    
    gcc/algol68/ChangeLog
    
            * a68-parser-scope.cc (scope_access_clause): New function.
            (scope_enclosed_clause): Use scope_access_clause.

Diff:
---
 gcc/algol68/a68-parser-scope.cc | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/gcc/algol68/a68-parser-scope.cc b/gcc/algol68/a68-parser-scope.cc
index e76a3c044097..e04704e25b62 100644
--- a/gcc/algol68/a68-parser-scope.cc
+++ b/gcc/algol68/a68-parser-scope.cc
@@ -54,6 +54,7 @@ static void scope_statement (NODE_T *, SCOPE_T **);
 static void scope_enclosed_clause (NODE_T *, SCOPE_T **);
 static void scope_formula (NODE_T *, SCOPE_T **);
 static void scope_routine_text (NODE_T *, SCOPE_T **);
+static void scope_access_clause (NODE_T *, SCOPE_T **);
 
 /*
  * Static scope checker.
@@ -898,6 +899,18 @@ scope_loop_clause (NODE_T *p)
     }
 }
 
+/* Scope and access-clause.  */
+
+static void
+scope_access_clause (NODE_T *p, SCOPE_T **s)
+{
+  for (; p != NO_NODE; FORWARD (p))
+    {
+      if (IS (p, ENCLOSED_CLAUSE))
+       scope_enclosed_clause (SUB (p), s);
+    }
+}
+
 /* Scope_enclosed_clause.  */
 
 static void
@@ -915,6 +928,8 @@ scope_enclosed_clause (NODE_T *p, SCOPE_T **s)
     scope_case_clause (SUB (p), s);
   else if (IS (p, LOOP_CLAUSE))
     scope_loop_clause (SUB (p));
+  else if (IS (p, ACCESS_CLAUSE))
+    scope_access_clause (SUB (p), s);
 }
 
 /* Whether a symbol table contains no (anonymous) definition.  */

Reply via email to