From 4736041b5aa5681c44cbb9c183b11bbb781492fc Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Thu, 19 Sep 2019 08:14:57 +0000 Subject: [PATCH] [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 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 --- gcc/ada/ChangeLog | 5 +++++ gcc/ada/gcc-interface/misc.c | 2 +- gcc/testsuite/ChangeLog | 4 ++++ gcc/testsuite/gnat.dg/bias1.adb | 34 ++++++++++++++++++++++++++++++++++ 4 files changed, 44 insertions(+), 1 deletion(-) create mode 100644 gcc/testsuite/gnat.dg/bias1.adb 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 + + * gcc-interface/misc.c (gnat_get_type_bias): Return the bias + when -fgnat-encodings=gdb. + 2019-09-19 Steve Baird * 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 + + * gnat.dg/bias1.adb: New testcase. + 2019-09-19 Steve Baird * 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 -- 2.7.4