[COMMITTED] ada: Reduce scope in the analysis of access attributes
Checks
Commit Message
From: Piotr Trojanek <trojanek@adacore.com>
Code cleanup; semantics is unaffected.
gcc/ada/
* sem_attr.adb (Analyze_Access_Attribute): Move code to IF
branch where its result is used.
Tested on x86_64-pc-linux-gnu, committed on master.
---
gcc/ada/sem_attr.adb | 15 ++++++++-------
1 file changed, 8 insertions(+), 7 deletions(-)
@@ -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