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/m2-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/m2-typeprint.c')
-rw-r--r-- | gdb/m2-typeprint.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/gdb/m2-typeprint.c b/gdb/m2-typeprint.c index 754fb65..dae07d1 100644 --- a/gdb/m2-typeprint.c +++ b/gdb/m2-typeprint.c @@ -234,9 +234,9 @@ static void m2_array (struct type *type, struct ui_file *stream, m2_print_bounds (TYPE_INDEX_TYPE (type), stream, show, -1, 1); } else - fprintf_filtered (stream, "%d", - (TYPE_LENGTH (type) - / TYPE_LENGTH (TYPE_TARGET_TYPE (type)))); + fputs_filtered (pulongest ((TYPE_LENGTH (type) + / TYPE_LENGTH (TYPE_TARGET_TYPE (type)))), + stream); } fprintf_filtered (stream, "] OF "); m2_print_type (TYPE_TARGET_TYPE (type), "", stream, show, level, flags); |