8sa1-binutils-gdb/gdb/dwarf2
Tom Tromey bbcdf9ab73 Rewrite GNAT-encoded fixed point types in DWARF reader
gdb currently supports two different styles of fixed-point.  The
original style, where fixed point types are "GNAT encoded", is handled
primarily in the Ada code.  The newer style, encoded using DWARF, is
handled by the core of gdb.

This patch changes gdb to read the GNAT encodings in the DWARF reader
as well.  This removes some code and unifies the two paths.  As a
result, GNAT-encoded fixed-point now works a bit better.

One possible drawback of this change is that, if someone uses stabs,
then fixed-point might now stop working.  I consider stabs to be fully
obsolete, though, so I don't intend to address this.

gdb/ChangeLog
2021-03-02  Tom Tromey  <tromey@adacore.com>

	* ada-lang.c (cast_from_gnat_encoded_fixed_point_type)
	(cast_to_gnat_encoded_fixed_point_type): Remove.
	(ada_value_cast, ada_evaluate_subexp): Update.
	(gnat_encoded_fixed_point_type_info)
	(ada_is_gnat_encoded_fixed_point_type)
	(gnat_encoded_fixed_point_delta)
	(gnat_encoded_fixed_point_scaling_factor): Remove.
	* ada-lang.h (ada_is_gnat_encoded_fixed_point_type)
	(gnat_encoded_fixed_point_delta)
	(gnat_encoded_fixed_point_scaling_factor): Don't declare.
	* ada-typeprint.c (print_gnat_encoded_fixed_point_type): Remove.
	(ada_print_type): Update.
	* ada-valprint.c (ada_value_print_num): Update.
	* dwarf2/read.c (ada_get_gnat_encoded_number)
	(ada_get_gnat_encoded_ratio): New functions.
	(finish_fixed_point_type): Use them.  Add parameters.
	(GNAT_FIXED_POINT_SUFFIX): New define.
	(gnat_encoded_fixed_point_type_info): New function.
	(read_base_type): Handle gnat encodings.

gdb/testsuite/ChangeLog
2021-03-02  Tom Tromey  <tromey@adacore.com>

	* gdb.ada/fixed_points.exp: Remove most special cases for minimal
	encodings.
2021-03-02 13:08:25 -07:00
..
abbrev.c Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
abbrev.h Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
attribute.c [gdb/symtab] Handle DW_AT_decl_file with form DW_FORM_implicit_const 2021-02-24 23:58:42 +01:00
attribute.h [gdb/symtab] Handle DW_AT_decl_file with form DW_FORM_implicit_const 2021-02-24 23:58:42 +01:00
comp-unit.c Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
comp-unit.h Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
die.h gdb/dwarf: split dwarf2_cu::ranges_base in two 2021-02-02 10:42:11 -05:00
dwz.c Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
dwz.h Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
expr.c Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
expr.h Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
frame-tailcall.c Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
frame-tailcall.h Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
frame.c Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
frame.h Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
index-cache.c Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
index-cache.h Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
index-common.c Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
index-common.h Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
index-write.c [gdb/symtab] Fix assert in write_one_signatured_type 2021-02-02 08:37:45 +01:00
index-write.h Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
leb.c Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
leb.h Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
line-header.c Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
line-header.h Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
loc.c Use std::vector for "registers_used" in compile feature 2021-01-23 20:33:25 -07:00
loc.h Use std::vector for "registers_used" in compile feature 2021-01-23 20:33:25 -07:00
macro.c Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
macro.h Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
read.c Rewrite GNAT-encoded fixed point types in DWARF reader 2021-03-02 13:08:25 -07:00
read.h gdb/dwarf: create and destroy dwarf2_per_bfd's CUs-to-expand queue 2021-02-23 13:37:44 -05:00
section.c Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
section.h Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
stringify.c Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
stringify.h Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00