aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicolas Setton <setton@adacore.com>2005-09-05 09:53:34 +0200
committerArnaud Charlet <charlet@gcc.gnu.org>2005-09-05 09:53:34 +0200
commit04efc8a196dabed89d6a090da3a4b4f7a6fd6111 (patch)
tree25b7d46a634a987bbd62c2db37fa872eb740fb75
parent2f1b20a916847d44edf6073cb07068ac201c2c58 (diff)
downloadgcc-04efc8a196dabed89d6a090da3a4b4f7a6fd6111.zip
gcc-04efc8a196dabed89d6a090da3a4b4f7a6fd6111.tar.gz
gcc-04efc8a196dabed89d6a090da3a4b4f7a6fd6111.tar.bz2
exp_dbug.adb (Get_Encoded_Name): Fixed bug that caused biaised types to be encoded as...
2005-09-01 Nicolas Setton <setton@adacore.com> * exp_dbug.adb (Get_Encoded_Name): Fixed bug that caused biaised types to be encoded as typ___XBLU_lowerbound__upperbound instead of typ___XB_lowerbound__upperbound. From-SVN: r103862
-rw-r--r--gcc/ada/exp_dbug.adb30
1 files changed, 18 insertions, 12 deletions
diff --git a/gcc/ada/exp_dbug.adb b/gcc/ada/exp_dbug.adb
index 372f63c..e7bdcc4 100644
--- a/gcc/ada/exp_dbug.adb
+++ b/gcc/ada/exp_dbug.adb
@@ -562,12 +562,6 @@ package body Exp_Dbug is
elsif Is_Discrete_Type (E)
and then not Bounds_Match_Size (E)
then
- if Has_Biased_Representation (E) then
- Get_External_Name_With_Suffix (E, "XB");
- else
- Get_External_Name_With_Suffix (E, "XD");
- end if;
-
declare
Lo : constant Node_Id := Type_Low_Bound (E);
Hi : constant Node_Id := Type_High_Bound (E);
@@ -588,16 +582,28 @@ package body Exp_Dbug is
Lo_Encode : constant Boolean := Lo_Con or Lo_Discr;
Hi_Encode : constant Boolean := Hi_Con or Hi_Discr;
+ Biased : constant Boolean := Has_Biased_Representation (E);
+
begin
+ if Biased then
+ Get_External_Name_With_Suffix (E, "XB");
+ else
+ Get_External_Name_With_Suffix (E, "XD");
+ end if;
+
if Lo_Encode or Hi_Encode then
- if Lo_Encode then
- if Hi_Encode then
- Add_Str_To_Name_Buffer ("LU_");
+ if Biased then
+ Add_Str_To_Name_Buffer ("_");
+ else
+ if Lo_Encode then
+ if Hi_Encode then
+ Add_Str_To_Name_Buffer ("LU_");
+ else
+ Add_Str_To_Name_Buffer ("L_");
+ end if;
else
- Add_Str_To_Name_Buffer ("L_");
+ Add_Str_To_Name_Buffer ("U_");
end if;
- else
- Add_Str_To_Name_Buffer ("U_");
end if;
if Lo_Con then