aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorTom Tromey <tromey@adacore.com>2019-09-19 08:14:57 +0000
committerPierre-Marie de Rodat <pmderodat@gcc.gnu.org>2019-09-19 08:14:57 +0000
commit4736041b5aa5681c44cbb9c183b11bbb781492fc (patch)
tree6457e5e7f50b252680c6f30eb9964ea84d219248 /gcc
parent0c27222c60b26cd21588576f140abd04f1d8a853 (diff)
downloadgcc-4736041b5aa5681c44cbb9c183b11bbb781492fc.zip
gcc-4736041b5aa5681c44cbb9c183b11bbb781492fc.tar.gz
gcc-4736041b5aa5681c44cbb9c183b11bbb781492fc.tar.bz2
[Ada] Emit DW_AT_GNU_bias with -fgnat-encodings=gdb
Emit DW_AT_GNU_bias with -fgnat-encodings=gdb. gdb implements this, but not the encoded variant. 2019-09-19 Tom Tromey <tromey@adacore.com> gcc/ada/ * gcc-interface/misc.c (gnat_get_type_bias): Return the bias when -fgnat-encodings=gdb. gcc/testsuite/ * gnat.dg/bias1.adb: New testcase. From-SVN: r275958
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ada/ChangeLog5
-rw-r--r--gcc/ada/gcc-interface/misc.c2
-rw-r--r--gcc/testsuite/ChangeLog4
-rw-r--r--gcc/testsuite/gnat.dg/bias1.adb34
4 files changed, 44 insertions, 1 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index 4208f95..94b32fb 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-19 Tom Tromey <tromey@adacore.com>
+
+ * gcc-interface/misc.c (gnat_get_type_bias): Return the bias
+ when -fgnat-encodings=gdb.
+
2019-09-19 Steve Baird <baird@adacore.com>
* sem_prag.adb (Preferred_String_Type): A new function. Given an
diff --git a/gcc/ada/gcc-interface/misc.c b/gcc/ada/gcc-interface/misc.c
index a576b7e..4abd4d5 100644
--- a/gcc/ada/gcc-interface/misc.c
+++ b/gcc/ada/gcc-interface/misc.c
@@ -1111,7 +1111,7 @@ gnat_get_type_bias (const_tree gnu_type)
{
if (TREE_CODE (gnu_type) == INTEGER_TYPE
&& TYPE_BIASED_REPRESENTATION_P (gnu_type)
- && gnat_encodings == DWARF_GNAT_ENCODINGS_MINIMAL)
+ && gnat_encodings != DWARF_GNAT_ENCODINGS_ALL)
return TYPE_RM_MIN_VALUE (gnu_type);
return NULL_TREE;
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index cac70e2..07adb11 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-19 Tom Tromey <tromey@adacore.com>
+
+ * gnat.dg/bias1.adb: New testcase.
+
2019-09-19 Steve Baird <baird@adacore.com>
* gnat.dg/annotation1.adb: New testcase.
diff --git a/gcc/testsuite/gnat.dg/bias1.adb b/gcc/testsuite/gnat.dg/bias1.adb
new file mode 100644
index 0000000..016a159
--- /dev/null
+++ b/gcc/testsuite/gnat.dg/bias1.adb
@@ -0,0 +1,34 @@
+-- { dg-do compile }
+-- { dg-options "-cargs -g -dA -gnatws -fgnat-encodings=gdb -margs" }
+-- { dg-final { scan-assembler "DW_AT_GNU_bias" } }
+
+procedure Bias1 is
+ type Small is range -7 .. -4;
+ for Small'Size use 2;
+ Y : Small := -5;
+ Y1 : Small := -7;
+
+ type Byte is mod 256;
+ type Repeat_Count_T is new Byte range 1 .. 2 ** 6;
+ for Repeat_Count_T'Size use 6;
+ X : Repeat_Count_T := 64;
+ X1 : Repeat_Count_T := 1;
+
+ type Char_Range is range 65 .. 68;
+ for Char_Range'Size use 2;
+ Cval : Char_Range := 65;
+
+ type SomePackedRecord is record
+ R: Small;
+ S: Small;
+ end record;
+ pragma Pack (SomePackedRecord);
+ SPR : SomePackedRecord := (R => -4, S => -5);
+
+ type Packed_Array is array (1 .. 3) of Small;
+ pragma pack (Packed_Array);
+ A : Packed_Array := (-7, -5, -4);
+
+begin
+ null;
+end Bias1; \ No newline at end of file