https://gcc.gnu.org/g:a1e6fdc0773bd9d7e7a2e2a9135c2c6c982b67af
commit r15-259-ga1e6fdc0773bd9d7e7a2e2a9135c2c6c982b67af Author: Piotr Trojanek <troja...@adacore.com> Date: Tue Jan 16 13:05:22 2024 +0100 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. Diff: --- 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