From dcdf1790adea14011549a5f660d9c4982744d37b Mon Sep 17 00:00:00 2001 From: Arnaud Charlet Date: Wed, 8 Dec 2004 12:25:03 +0100 Subject: [PATCH] atree.adb (Visit_Itype): Create a new name for the generated itype... * atree.adb (Visit_Itype): Create a new name for the generated itype, because the back-end may otherwise treat it as a redefinition of the old symbol. From-SVN: r91875 --- gcc/ada/atree.adb | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/gcc/ada/atree.adb b/gcc/ada/atree.adb index daf0641cfe6..f8fef8ce8ed 100644 --- a/gcc/ada/atree.adb +++ b/gcc/ada/atree.adb @@ -39,6 +39,7 @@ pragma Style_Checks (All_Checks); -- bodies) and the C file a-atree.c (for remaining non-inlined bodies). with Debug; use Debug; +with Namet; use Namet; with Nlists; use Nlists; with Elists; use Elists; with Output; use Output; @@ -809,6 +810,7 @@ package body Atree is procedure Debug_Extend_Node; -- Debug routine for debug flag N + pragma Inline (Debug_Extend_Node); procedure Debug_Extend_Node is begin @@ -827,8 +829,6 @@ package body Atree is end if; end Debug_Extend_Node; - pragma Inline (Debug_Extend_Node); - begin pragma Assert (not (Has_Extension (Node))); Result := Allocate_Initialize_Node (Node, With_Extension => True); @@ -1585,6 +1585,16 @@ package body Atree is New_Itype := New_Copy (Old_Itype); + -- The new Itype has all the attributes of the old one, and + -- we just copy the contents of the entity. However, the back-end + -- needs different names for debugging purposes, so we create a + -- new internal name by appending the letter 'c' (copy) to the + -- name of the original. + + Get_Name_String (Chars (Old_Itype)); + Add_Char_To_Name_Buffer ('c'); + Set_Chars (New_Itype, Name_Enter); + -- If our associated node is an entity that has already been copied, -- then set the associated node of the copy to point to the right -- copy. If we have copied an Itype that is itself the associated