diff options
author | Piotr Trojanek <trojanek@adacore.com> | 2021-02-08 13:55:05 +0100 |
---|---|---|
committer | Pierre-Marie de Rodat <derodat@adacore.com> | 2021-06-15 06:19:23 -0400 |
commit | 9880492caa6f56e7abe10163157d0c2149d72ba4 (patch) | |
tree | b3e6df2c0812615dd3d62bae59b7b0df3d7acd64 /gcc | |
parent | 86347b2d8d48fa2d18658d241f2df54665dac627 (diff) | |
download | gcc-9880492caa6f56e7abe10163157d0c2149d72ba4.zip gcc-9880492caa6f56e7abe10163157d0c2149d72ba4.tar.gz gcc-9880492caa6f56e7abe10163157d0c2149d72ba4.tar.bz2 |
[Ada] Remove redundant guard from Find_Overlaid_Entity
gcc/ada/
* sem_util.ads (Find_Overlaid_Entity): Simplify comment for
spec.
* sem_util.adb (Find_Overlaid_Entity): Remove defensive code
from body.
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ada/sem_util.adb | 81 | ||||
-rw-r--r-- | gcc/ada/sem_util.ads | 11 |
2 files changed, 45 insertions, 47 deletions
diff --git a/gcc/ada/sem_util.adb b/gcc/ada/sem_util.adb index 12b5429..98ca046 100644 --- a/gcc/ada/sem_util.adb +++ b/gcc/ada/sem_util.adb @@ -9371,6 +9371,10 @@ package body Sem_Util is Ent : out Entity_Id; Off : out Boolean) is + pragma Assert + (Nkind (N) = N_Attribute_Definition_Clause + and then Chars (N) = Name_Address); + Expr : Node_Id; begin @@ -9390,61 +9394,56 @@ package body Sem_Util is Ent := Empty; Off := False; - if Nkind (N) = N_Attribute_Definition_Clause - and then Chars (N) = Name_Address - then - Expr := Expression (N); + Expr := Expression (N); - -- This loop checks the form of the expression for Y'Address, - -- using recursion to deal with intermediate constants. + -- This loop checks the form of the expression for Y'Address, using + -- recursion to deal with intermediate constants. - loop - -- Check for Y'Address + loop + -- Check for Y'Address - if Nkind (Expr) = N_Attribute_Reference - and then Attribute_Name (Expr) = Name_Address - then - Expr := Prefix (Expr); - exit; + if Nkind (Expr) = N_Attribute_Reference + and then Attribute_Name (Expr) = Name_Address + then + Expr := Prefix (Expr); + exit; - -- Check for Const where Const is a constant entity + -- Check for Const where Const is a constant entity - elsif Is_Entity_Name (Expr) - and then Ekind (Entity (Expr)) = E_Constant - then - Expr := Constant_Value (Entity (Expr)); + elsif Is_Entity_Name (Expr) + and then Ekind (Entity (Expr)) = E_Constant + then + Expr := Constant_Value (Entity (Expr)); - -- Anything else does not need checking + -- Anything else does not need checking - else - return; - end if; - end loop; + else + return; + end if; + end loop; - -- This loop checks the form of the prefix for an entity, using - -- recursion to deal with intermediate components. + -- This loop checks the form of the prefix for an entity, using + -- recursion to deal with intermediate components. - loop - -- Check for Y where Y is an entity + loop + -- Check for Y where Y is an entity - if Is_Entity_Name (Expr) then - Ent := Entity (Expr); - return; + if Is_Entity_Name (Expr) then + Ent := Entity (Expr); + return; - -- Check for components + -- Check for components - elsif Nkind (Expr) in N_Selected_Component | N_Indexed_Component - then - Expr := Prefix (Expr); - Off := True; + elsif Nkind (Expr) in N_Selected_Component | N_Indexed_Component then + Expr := Prefix (Expr); + Off := True; - -- Anything else does not need checking + -- Anything else does not need checking - else - return; - end if; - end loop; - end if; + else + return; + end if; + end loop; end Find_Overlaid_Entity; ------------------------- diff --git a/gcc/ada/sem_util.ads b/gcc/ada/sem_util.ads index a8f8e0b..a986ae6 100644 --- a/gcc/ada/sem_util.ads +++ b/gcc/ada/sem_util.ads @@ -900,12 +900,11 @@ package Sem_Util is (N : Node_Id; Ent : out Entity_Id; Off : out Boolean); - -- The node N should be an address representation clause. Determines if - -- the target expression is the address of an entity with an optional - -- offset. If so, set Ent to the entity and, if there is an offset, set - -- Off to True, otherwise to False. If N is not an address representation - -- clause, or if it is not possible to determine that the address is of - -- this form, then set Ent to Empty. + -- The node N should be an address representation clause. Determines if the + -- target expression is the address of an entity with an optional offset. + -- If so, set Ent to the entity and, if there is an offset, set Off to + -- True, otherwise to False. If it is not possible to determine that the + -- address is of this form, then set Ent to Empty. function Find_Parameter_Type (Param : Node_Id) return Entity_Id; -- Return the type of formal parameter Param as determined by its |