diff options
author | Keith Seitz <keiths@redhat.com> | 2019-03-29 10:15:38 -0700 |
---|---|---|
committer | Keith Seitz <keiths@redhat.com> | 2019-03-29 10:15:38 -0700 |
commit | cc1defb1dcb5f1ca23a82bca233a48ab2657de6c (patch) | |
tree | c9319b63cfd5d879cbd1c3102643554b54a9f8aa /gdb/ada-typeprint.c | |
parent | 2487ef07c28b961c6e2b8c51161f88f93b181d07 (diff) | |
download | fsf-binutils-gdb-cc1defb1dcb5f1ca23a82bca233a48ab2657de6c.zip fsf-binutils-gdb-cc1defb1dcb5f1ca23a82bca233a48ab2657de6c.tar.gz fsf-binutils-gdb-cc1defb1dcb5f1ca23a82bca233a48ab2657de6c.tar.bz2 |
Allow really large fortran array bounds: TYPE_LENGTH to ULONGEST
This series is revisit of Siddhesh Poyarekar's patch from back in
2012. The last status on the patch is in the following gdb-patches
thread:
https://sourceware.org/ml/gdb-patches/2012-08/msg00562.html
It appears that Tom approved the patch, but Jan had some issues
with a compiler error that made the test fail on -m32 test runs.
He wrote up a hand-tweaked .S file to deal with it. Siddesh said
he would update tests. Then nothing.
Siddesh and Jan have both moved on since.
The patch originally required a large precursor patch to work.
I have whittled this down to/rewritten the bare minimum, and this
first patch is the result, changing the type of TYPE_LENGTH
to ULONGEST from unsigned int.
The majority of the changes involve changing printf format
strings to use %s and pulongest instead of %d.
gdb/ChangeLog:
* ada-lang.c (ada_template_to_fixed_record_type_1): Use
%s/pulongest for TYPE_LENGTH instead of %d in format
strings.
* ada-typerint.c (ada_print_type): Likewise.
* amd64-windows-tdep.c (amd64_windows_store_arg_in_reg): Likewise.
* compile/compile-c-support.c (generate_register_struct): Likewise.
* gdbtypes.c (recursive_dump_type): Likewise.
* gdbtypes.h (struct type) <length>: Change type to ULONGEST.
* m2-typeprint.c (m2_array): Use %s/pulongest for TYPE_LENGTH
instead of %d in format strings.
* riscv-tdep.c (riscv_type_alignment): Cast second argument
to std::min to ULONGEST.
* symmisc.c (print_symbol): Use %s/pulongest for TYPE_LENGTH
instead of %d in format strings.
* tracepoint.c (info_scope_command): Likewise.
* typeprint.c (print_offset_data::update)
(print_offset_data::finish): Likewise.
* xtensa-tdep.c (xtensa_store_return_value)
(xtensa_push_dummy_call): Likewise.
Diffstat (limited to 'gdb/ada-typeprint.c')
-rw-r--r-- | gdb/ada-typeprint.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/gdb/ada-typeprint.c b/gdb/ada-typeprint.c index 8c42e81..efcd14b 100644 --- a/gdb/ada-typeprint.c +++ b/gdb/ada-typeprint.c @@ -895,8 +895,8 @@ ada_print_type (struct type *type0, const char *varstring, const char *name = ada_type_name (type); if (!ada_is_range_type_name (name)) - fprintf_filtered (stream, _("<%d-byte integer>"), - TYPE_LENGTH (type)); + fprintf_filtered (stream, _("<%s-byte integer>"), + pulongest (TYPE_LENGTH (type))); else { fprintf_filtered (stream, "range "); @@ -917,7 +917,8 @@ ada_print_type (struct type *type0, const char *varstring, } break; case TYPE_CODE_FLT: - fprintf_filtered (stream, _("<%d-byte float>"), TYPE_LENGTH (type)); + fprintf_filtered (stream, _("<%s-byte float>"), + pulongest (TYPE_LENGTH (type))); break; case TYPE_CODE_ENUM: if (show < 0) |