aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada
diff options
context:
space:
mode:
authorPiotr Trojanek <trojanek@adacore.com>2024-01-16 13:05:22 +0100
committerMarc Poulhiès <poulhies@adacore.com>2024-05-07 09:55:57 +0200
commita1e6fdc0773bd9d7e7a2e2a9135c2c6c982b67af (patch)
tree980507266e30f709f97afe951c80f5173ef194d5 /gcc/ada
parente8bcc47f25e59683194446c45a68442e1702259b (diff)
downloadgcc-a1e6fdc0773bd9d7e7a2e2a9135c2c6c982b67af.zip
gcc-a1e6fdc0773bd9d7e7a2e2a9135c2c6c982b67af.tar.gz
gcc-a1e6fdc0773bd9d7e7a2e2a9135c2c6c982b67af.tar.bz2
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.
Diffstat (limited to 'gcc/ada')
-rw-r--r--gcc/ada/sem_attr.adb15
1 files changed, 8 insertions, 7 deletions
diff --git a/gcc/ada/sem_attr.adb b/gcc/ada/sem_attr.adb
index c17f673..6140cc0 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