aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArnaud Charlet <charlet@gcc.gnu.org>2004-12-08 12:25:03 +0100
committerArnaud Charlet <charlet@gcc.gnu.org>2004-12-08 12:25:03 +0100
commitdcdf1790adea14011549a5f660d9c4982744d37b (patch)
treee99f25badcdd4f030790964cb05f56e5ed51adf9
parent87f07a97ade1d99594ede4e334ea7dbbd907aabc (diff)
downloadgcc-dcdf1790adea14011549a5f660d9c4982744d37b.zip
gcc-dcdf1790adea14011549a5f660d9c4982744d37b.tar.gz
gcc-dcdf1790adea14011549a5f660d9c4982744d37b.tar.bz2
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
-rw-r--r--gcc/ada/atree.adb14
1 files changed, 12 insertions, 2 deletions
diff --git a/gcc/ada/atree.adb b/gcc/ada/atree.adb
index daf0641..f8fef8c 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