summaryrefslogtreecommitdiff
path: root/gcc/ada/exp_dbug.adb
diff options
context:
space:
mode:
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2006-10-31 17:55:39 +0000
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2006-10-31 17:55:39 +0000
commit36e3108980fd51011b4b82c8ea53911edea5c2de (patch)
tree3b67093b9dac5a89e93d9b4f89c5e837966fe06f /gcc/ada/exp_dbug.adb
parent9f76f43983699fc61cb2e441f48cbd15b693d6fb (diff)
downloadgcc-36e3108980fd51011b4b82c8ea53911edea5c2de.tar.gz
2006-10-31 Robert Dewar <dewar@adacore.com>
* exp_dbug.ads, exp_dbug.adb (Get_External_Name): Add missing initialization of Homonym_Len. (Fully_Qualify_Name): Remove kludge to eliminate anonymous block names from fully qualified name. Fixes problem of duplicate external names differing only in the presence of such a block name. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118263 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada/exp_dbug.adb')
-rw-r--r--gcc/ada/exp_dbug.adb38
1 files changed, 12 insertions, 26 deletions
diff --git a/gcc/ada/exp_dbug.adb b/gcc/ada/exp_dbug.adb
index 1ad503c6dee..babdef20daf 100644
--- a/gcc/ada/exp_dbug.adb
+++ b/gcc/ada/exp_dbug.adb
@@ -36,7 +36,6 @@ with Output; use Output;
with Sem_Eval; use Sem_Eval;
with Sem_Util; use Sem_Util;
with Sinfo; use Sinfo;
-with Snames; use Snames;
with Stand; use Stand;
with Stringt; use Stringt;
with Table;
@@ -546,7 +545,6 @@ package body Exp_Dbug is
-- Vax floating-point case
elsif Vax_Float (E) then
-
if Digits_Value (Base_Type (E)) = 6 then
Get_External_Name_With_Suffix (E, "XFF");
@@ -679,13 +677,13 @@ package body Exp_Dbug is
else
Get_Name_String_And_Append (Chars (Entity));
end if;
-
end Get_Qualified_Name_And_Append;
-- Start of processing for Get_External_Name
begin
- Name_Len := 0;
+ Name_Len := 0;
+ Homonym_Len := 0;
-- If this is a child unit, we want the child
@@ -887,9 +885,10 @@ package body Exp_Dbug is
------------------------------------
procedure Get_Secondary_DT_External_Name
- (Typ : Entity_Id;
- Ancestor_Typ : Entity_Id;
- Suffix_Index : Int) is
+ (Typ : Entity_Id;
+ Ancestor_Typ : Entity_Id;
+ Suffix_Index : Int)
+ is
begin
Get_External_Name (Typ, Has_Suffix => False);
@@ -1116,26 +1115,13 @@ package body Exp_Dbug is
Get_Name_String (Chars (E));
end if;
- -- A special check here, we never add internal block or loop
- -- names, since they intefere with debugging. We identify these
- -- by the fact that they start with an upper case B or L.
- -- But do add these if what we are qualifying is a __clean
- -- procedure since those need to be made unique.
+ -- Here we do one step of the qualification
- if (Name_Buffer (1) = 'B' or else Name_Buffer (1) = 'L')
- and then (not Debug_Flag_VV)
- and then Full_Qualify_Len > 2
- and then Chars (Ent) /= Name_uClean
- then
- Full_Qualify_Len := Full_Qualify_Len - 2;
-
- else
- Full_Qualify_Name
- (Full_Qualify_Len + 1 .. Full_Qualify_Len + Name_Len) :=
- Name_Buffer (1 .. Name_Len);
- Full_Qualify_Len := Full_Qualify_Len + Name_Len;
- Append_Homonym_Number (E);
- end if;
+ Full_Qualify_Name
+ (Full_Qualify_Len + 1 .. Full_Qualify_Len + Name_Len) :=
+ Name_Buffer (1 .. Name_Len);
+ Full_Qualify_Len := Full_Qualify_Len + Name_Len;
+ Append_Homonym_Number (E);
end if;
if Is_BNPE (E) then