Try printing array range using the name of its index type
authorJoel Brobecker <brobecker@adacore.com>
Wed, 15 Jan 2014 16:00:05 +0000 (20:00 +0400)
committerJoel Brobecker <brobecker@adacore.com>
Mon, 27 Jan 2014 04:27:21 +0000 (08:27 +0400)
commitfb151210966ed045c124b7accfb3422d35166607
tree1de8739dbd06d369559dce7191d90cb768f88c92
parentaba02109701c9824499b42f1cf044a995fc603e1
Try printing array range using the name of its index type

   type Char_Table is array (Character range Character'First .. Character'Last)
     of Natural;

Trying to print the type description of this type currently yields:

   (gdb) ptype char_table
   type = array ('["00"]' .. '["ff"]') of natural

Although technically correct, it seemed more useful to print the array
range as:

   (gdb) ptype char_table
   type = array (character) of natural

This patch implements this suggestion.

gdb/ChangeLog:

        * ada-typeprint (type_is_full_subrange_of_target_type):
        New function.
        (print_range): Add parameter bounds_prefered_p.  If not set,
        try printing range types using the name of their base type.
        (print_range_type): Add parameter bounds_prefered_p.
        Use it in call to print_range.
        (print_array_type, ada_print_type): Update calls to print_range
        and print_range_type.

gdb/testsuite/ChangeLog:

        * gdb.ada/array_char_idx: New testcase.
gdb/ChangeLog
gdb/ada-typeprint.c
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.ada/array_char_idx.exp [new file with mode: 0644]
gdb/testsuite/gdb.ada/array_char_idx/foo.adb [new file with mode: 0644]
gdb/testsuite/gdb.ada/array_char_idx/pck.adb [new file with mode: 0644]
gdb/testsuite/gdb.ada/array_char_idx/pck.ads [new file with mode: 0644]