From f5b4b6bf14a571df07021936c29b4773beb80324 Mon Sep 17 00:00:00 2001 From: Justin Squirek Date: Sat, 27 Feb 2021 14:30:09 -0500 Subject: [PATCH] [Ada] Spurious accessibility error on "for of" loop parameter gcc/ada/ * sem_util.adb (Accessibility_Level): Take into account renamings of loop parameters. --- gcc/ada/sem_util.adb | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/gcc/ada/sem_util.adb b/gcc/ada/sem_util.adb index 65376b1e1a1f..aa2449329cd3 100644 --- a/gcc/ada/sem_util.adb +++ b/gcc/ada/sem_util.adb @@ -664,6 +664,15 @@ package body Sem_Util is return Make_Level_Literal (Scope_Depth (Enclosing_Dynamic_Scope (E)) + 1); + -- Check if E is an expansion-generated renaming of an iterator + -- by examining Related_Expression. If so, determine the + -- accessibility level based on the original expression. + + elsif Ekind (E) in E_Constant | E_Variable + and then Present (Related_Expression (E)) + then + return Accessibility_Level (Related_Expression (E)); + -- Normal object - get the level of the enclosing scope else -- 2.47.2