From a1e6fdc0773bd9d7e7a2e2a9135c2c6c982b67af Mon Sep 17 00:00:00 2001 From: Piotr Trojanek Date: Tue, 16 Jan 2024 13:05:22 +0100 Subject: [PATCH] ada: Reduce scope in the analysis of access attributes Code cleanup; semantics is unaffected. gcc/ada/ * sem_attr.adb (Analyze_Access_Attribute): Move code to IF branch where its result is used. --- gcc/ada/sem_attr.adb | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/gcc/ada/sem_attr.adb b/gcc/ada/sem_attr.adb index c17f67356ef..6140cc0c0d6 100644 --- a/gcc/ada/sem_attr.adb +++ b/gcc/ada/sem_attr.adb @@ -982,15 +982,16 @@ package body Sem_Attr is if Is_Entity_Name (P) then Typ := Entity (P); - -- The reference may appear in an aggregate that has been expanded - -- into a loop. Locate scope of type definition, if any. + if Is_Type (Typ) then - Scop := Current_Scope; - while Ekind (Scop) = E_Loop loop - Scop := Scope (Scop); - end loop; + -- The reference may appear in an aggregate that has been + -- expanded into a loop. Locate scope of type definition, + -- if any. - if Is_Type (Typ) then + Scop := Current_Scope; + while Ekind (Scop) = E_Loop loop + Scop := Scope (Scop); + end loop; -- OK if we are within the scope of a limited type -- let's mark the component as having per object constraint -- 2.47.2