From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 7871) id 54D823858C62; Mon, 6 May 2024 09:15:56 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 54D823858C62 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1714986956; bh=tiwTXFatOPUKOXuQ84GqVLAWxUNlR5wtWq9MR+ByqXk=; h=From:To:Subject:Date:From; b=qj5SvTGOLZtRSFIjJxVCPah89zLnJHNBDpqyhkcrKkqSDNHSE8g5jXP5WbuhbT65I Tkh/so/i82lsm48HSN8b0EzdlRzv7jCDS9QaZmX3P+EMo+pF405G1l4tEDck6wOAxG MZCtw/cB37TQLGiF3l6Mf570dzNKUvGm6DSCHXRA= MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="utf-8" From: Marc Poulhi?s To: gcc-cvs@gcc.gnu.org Subject: [gcc r15-176] ada: Adjust source location for degenerate scope master X-Act-Checkin: gcc X-Git-Author: Eric Botcazou X-Git-Refname: refs/heads/master X-Git-Oldrev: cdf15b4b661c5fa1a210642e0b2a508969faf197 X-Git-Newrev: 6cc4ac7d151e432b75da58d44d2ffb53192e04b5 Message-Id: <20240506091556.54D823858C62@sourceware.org> Date: Mon, 6 May 2024 09:15:56 +0000 (GMT) List-Id: https://gcc.gnu.org/g:6cc4ac7d151e432b75da58d44d2ffb53192e04b5 commit r15-176-g6cc4ac7d151e432b75da58d44d2ffb53192e04b5 Author: Eric Botcazou Date: Fri Dec 15 13:08:38 2023 +0100 ada: Adjust source location for degenerate scope master When the finalization scope master degenerates into a simple master node, the latter must inherit the source location that the former would have had. gcc/ada/ * exp_ch7.adb (Build_Finalizer.Process_Object_Declaration): Adjust the Sloc of the master node declaration in the degenerate case. Diff: --- gcc/ada/exp_ch7.adb | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/gcc/ada/exp_ch7.adb b/gcc/ada/exp_ch7.adb index 75c9e223956..4382de9b6b2 100644 --- a/gcc/ada/exp_ch7.adb +++ b/gcc/ada/exp_ch7.adb @@ -2875,6 +2875,7 @@ package body Exp_Ch7 is Master_Node_Decl : Node_Id; Master_Node_Id : Entity_Id; Master_Node_Ins : Node_Id; + Master_Node_Loc : Source_Ptr; Obj_Ref : Node_Id; -- Start of processing for Process_Object_Declaration @@ -2936,11 +2937,20 @@ package body Exp_Ch7 is end if; else + -- For one object, use the Sloc the scope master would have had + + if Counter_Val = 1 then + Master_Node_Loc := Sloc (N); + else + Master_Node_Loc := Loc; + end if; + Master_Node_Id := - Make_Defining_Identifier (Loc, + Make_Defining_Identifier (Master_Node_Loc, Chars => New_External_Name (Chars (Obj_Id), Suffix => "MN")); Master_Node_Decl := - Make_Master_Node_Declaration (Loc, Master_Node_Id, Obj_Id); + Make_Master_Node_Declaration (Master_Node_Loc, + Master_Node_Id, Obj_Id); Push_Scope (Scope (Obj_Id)); if Counter_Val = 1 then