From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1914) id 05ABD3858434; Wed, 5 Jan 2022 11:35:45 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 05ABD3858434 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-6252] [Ada] Improve support for casing on types with controlled parts X-Act-Checkin: gcc X-Git-Author: Steve Baird X-Git-Refname: refs/heads/master X-Git-Oldrev: a7b4fbd9b4c2c24bac956125068d2540976bf90e X-Git-Newrev: 5e51d85e2e739cbe8a0c7081d300c12c5b5447b2 Message-Id: <20220105113545.05ABD3858434@sourceware.org> Date: Wed, 5 Jan 2022 11:35:45 +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: Wed, 05 Jan 2022 11:35:45 -0000 https://gcc.gnu.org/g:5e51d85e2e739cbe8a0c7081d300c12c5b5447b2 commit r12-6252-g5e51d85e2e739cbe8a0c7081d300c12c5b5447b2 Author: Steve Baird Date: Wed Dec 1 11:02:52 2021 -0800 [Ada] Improve support for casing on types with controlled parts gcc/ada/ * exp_ch5.adb (Finish_Binding_Object_Declaration): Fix a bug that was introduced in the previous commit. The previous version initialized a Boolean constant Declare_Copy before the variable Decl had been initialized properly. Diff: --- gcc/ada/exp_ch5.adb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gcc/ada/exp_ch5.adb b/gcc/ada/exp_ch5.adb index 42cffd5186a..b73a966faa2 100644 --- a/gcc/ada/exp_ch5.adb +++ b/gcc/ada/exp_ch5.adb @@ -3392,12 +3392,12 @@ package body Exp_Ch5 is Decl : Node_Id := First (Declarations (Block_Stmt)); Def_Id : Node_Id := Empty; + function Declare_Copy (Decl : Node_Id) return Boolean is + (Nkind (Decl) = N_Object_Declaration); -- Declare_Copy indicates which of the two approaches -- was chosen during analysis: declare (and initialize) -- a new variable, or use access values to declare a renaming -- of the appropriate subcomponent of the selector value. - Declare_Copy : constant Boolean := - Nkind (Decl) = N_Object_Declaration; function Make_Conditional (Stmt : Node_Id) return Node_Id; -- If there is only one choice for this alternative, then @@ -3443,7 +3443,7 @@ package body Exp_Ch5 is end loop; -- For a binding object, we sometimes make a copy and - -- sometimes introduce a renaming. That decision is made + -- sometimes introduce a renaming. That decision is made -- elsewhere. The renaming case involves dereferencing an -- access value because of the possibility of multiple -- choices (with multiple binding definitions) for a single @@ -3452,7 +3452,7 @@ package body Exp_Ch5 is -- renaming case, we initialize (again, maybe conditionally) -- the access value. - if Declare_Copy then + if Declare_Copy (Decl) then declare Assign_Value : constant Node_Id := Make_Assignment_Statement (Loc,