From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1914) id 11279398B84B; Tue, 15 Jun 2021 10:21:32 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 11279398B84B MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="utf-8" From: Pierre-Marie de Rodat To: gcc-cvs@gcc.gnu.org Subject: [gcc r12-1460] [Ada] Remove redundant guard from Find_Overlaid_Entity X-Act-Checkin: gcc X-Git-Author: Piotr Trojanek X-Git-Refname: refs/heads/master X-Git-Oldrev: 86347b2d8d48fa2d18658d241f2df54665dac627 X-Git-Newrev: 9880492caa6f56e7abe10163157d0c2149d72ba4 Message-Id: <20210615102132.11279398B84B@sourceware.org> Date: Tue, 15 Jun 2021 10:21:32 +0000 (GMT) X-BeenThere: gcc-cvs@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-cvs mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 15 Jun 2021 10:21:32 -0000 https://gcc.gnu.org/g:9880492caa6f56e7abe10163157d0c2149d72ba4 commit r12-1460-g9880492caa6f56e7abe10163157d0c2149d72ba4 Author: Piotr Trojanek Date: Mon Feb 8 13:55:05 2021 +0100 [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. Diff: --- gcc/ada/sem_util.adb | 81 ++++++++++++++++++++++++++-------------------------- 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 12b54293dbb..98ca0466e0b 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 a8f8e0bd9c1..a986ae65547 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