This disables the last special encoding done in Get_Encoded_Name, except
when -fgnat-encodings=all is passed on the command line.
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
* exp_dbug.adb (Get_Encoded_Name): Do not encode names of discrete
types with custom bounds, except with -fgnat-encodings=all.
* exp_pakd.adb (Create_Packed_Array_Impl_Type): Adjust comment.
diff --git a/gcc/ada/exp_dbug.adb b/gcc/ada/exp_dbug.adb
--- a/gcc/ada/exp_dbug.adb
+++ b/gcc/ada/exp_dbug.adb
@@ -655,10 +655,10 @@ package body Exp_Dbug is
Has_Suffix := True;
- -- Fixed-point case: generate GNAT encodings when asked to
+ -- Generate GNAT encodings when asked to for fixed-point case
- if Is_Fixed_Point_Type (E)
- and then GNAT_Encodings = DWARF_GNAT_Encodings_All
+ if GNAT_Encodings = DWARF_GNAT_Encodings_All
+ and then Is_Fixed_Point_Type (E)
then
Get_External_Name (E, True, "XF_");
Add_Real_To_Buffer (Delta_Value (E));
@@ -668,10 +668,9 @@ package body Exp_Dbug is
Add_Real_To_Buffer (Small_Value (E));
end if;
- -- Discrete case where bounds do not match size. Not necessary if we can
- -- emit standard DWARF.
+ -- Likewise for discrete case where bounds do not match size
- elsif GNAT_Encodings /= DWARF_GNAT_Encodings_Minimal
+ elsif GNAT_Encodings = DWARF_GNAT_Encodings_All
and then Is_Discrete_Type (E)
and then not Bounds_Match_Size (E)
then
diff --git a/gcc/ada/exp_pakd.adb b/gcc/ada/exp_pakd.adb
--- a/gcc/ada/exp_pakd.adb
+++ b/gcc/ada/exp_pakd.adb
@@ -828,8 +828,8 @@ package body Exp_Pakd is
elsif not Is_Constrained (Typ) then
- -- When generating standard DWARF (i.e when GNAT_Encodings is
- -- DWARF_GNAT_Encodings_Minimal), the ___XP suffix will be stripped
+ -- When generating standard DWARF (i.e when GNAT_Encodings is not
+ -- DWARF_GNAT_Encodings_All), the ___XP suffix will be stripped
-- by the back-end but generate it anyway to ease compiler debugging.
-- This will help to distinguish implementation types from original
-- packed arrays.