diff options
author | Tom Tromey <tromey@adacore.com> | 2020-04-24 13:40:31 -0600 |
---|---|---|
committer | Tom Tromey <tromey@adacore.com> | 2020-04-24 13:40:32 -0600 |
commit | f8e89861cfb6acbfa097814f5864afd5563a3011 (patch) | |
tree | 06d2310f45105e61d5541755b596e29ca5241dba /gdb/ChangeLog | |
parent | 9c6a1327ad9a92b8584f0501dd25bf8ba9e84ac6 (diff) | |
download | gdb-f8e89861cfb6acbfa097814f5864afd5563a3011.zip gdb-f8e89861cfb6acbfa097814f5864afd5563a3011.tar.gz gdb-f8e89861cfb6acbfa097814f5864afd5563a3011.tar.bz2 |
Add support for dynamic type lengths
In Ada, a type with variant parts can have a variable length. This
patch adds support for this to gdb, by integrating the length
computation into the dynamic type resolution code.
gdb/ChangeLog
2020-04-24 Tom Tromey <tromey@adacore.com>
* dwarf2/read.c (read_structure_type): Handle dynamic length.
* gdbtypes.c (is_dynamic_type_internal): Check
TYPE_HAS_DYNAMIC_LENGTH.
(resolve_dynamic_type_internal): Use TYPE_DYNAMIC_LENGTH.
* gdbtypes.h (TYPE_HAS_DYNAMIC_LENGTH, TYPE_DYNAMIC_LENGTH):
New macros.
(enum dynamic_prop_node_kind) <DYN_PROP_BYTE_SIZE>: New
constant.
gdb/testsuite/ChangeLog
2020-04-24 Tom Tromey <tromey@adacore.com>
* gdb.ada/variant.exp: New file
* gdb.ada/variant/pkg.adb: New file
* gdb.ada/variant/pck.adb: New file
Diffstat (limited to 'gdb/ChangeLog')
-rw-r--r-- | gdb/ChangeLog | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 962c997..29e9a47 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,16 @@ 2020-04-24 Tom Tromey <tromey@adacore.com> + * dwarf2/read.c (read_structure_type): Handle dynamic length. + * gdbtypes.c (is_dynamic_type_internal): Check + TYPE_HAS_DYNAMIC_LENGTH. + (resolve_dynamic_type_internal): Use TYPE_DYNAMIC_LENGTH. + * gdbtypes.h (TYPE_HAS_DYNAMIC_LENGTH, TYPE_DYNAMIC_LENGTH): + New macros. + (enum dynamic_prop_node_kind) <DYN_PROP_BYTE_SIZE>: New + constant. + +2020-04-24 Tom Tromey <tromey@adacore.com> + * dwarf2/read.c (struct variant_field): Rewrite. (struct variant_part_builder): New. (struct nextfield): Remove "variant" field. Add "offset". |