diff options
author | Xavier Roirand <roirand@adacore.com> | 2018-01-04 23:47:05 -0500 |
---|---|---|
committer | Joel Brobecker <brobecker@adacore.com> | 2018-01-04 23:47:15 -0500 |
commit | e3861a03138e24e7f2f0e8c4982bdad2a6e1dbaf (patch) | |
tree | 0cc0e69675dc197abab33f2e39041a9e9f62f118 /gdb/testsuite | |
parent | cd385f94a7888b619c84e9ab007bac5093c5e894 (diff) | |
download | gdb-e3861a03138e24e7f2f0e8c4982bdad2a6e1dbaf.zip gdb-e3861a03138e24e7f2f0e8c4982bdad2a6e1dbaf.tar.gz gdb-e3861a03138e24e7f2f0e8c4982bdad2a6e1dbaf.tar.bz2 |
(Ada) Remove printing of array's first index when unneeded
Consider the following code:
type Table is array (Character) of Natural;
My_Table : Table := (others => 4874);
Printing this table in gdb leads to:
(gdb) p my_table
$1 = ('["00"]' => 4874 <repeats 256 times>)
In this case, the index of the first element in this array is also
the first element of the index type (character type). Similar to what
we do we enumeration types, we do not need to print the index of the
first element when printing the array.
This patch fixes this issue and changes the output as follow:
(gdb) p my_table
$1 = (4874 <repeats 256 times>)
gdb/ChangeLog:
* ada-valprint.c (print_optional_low_bound): Handle
character-indexed array printing like boolean-indexed array
printing.
gdb/testuite/ChangeLog:
* testsuite/gdb.ada/array_char_idx/pck.ads (Table): New type.
(My_Table): New global variable.
* testsuite/gdb.ada/array_char_idx.exp: Add test.
Tested on x86_64-linux.
Diffstat (limited to 'gdb/testsuite')
-rw-r--r-- | gdb/testsuite/ChangeLog | 6 | ||||
-rw-r--r-- | gdb/testsuite/gdb.ada/array_char_idx.exp | 3 | ||||
-rw-r--r-- | gdb/testsuite/gdb.ada/array_char_idx/pck.ads | 3 |
3 files changed, 12 insertions, 0 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index ea9d65c..f45ae0c 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2018-01-05 Xavier Roirand <brobecker@adacore.com> + + * testsuite/gdb.ada/array_char_idx/pck.ads (Table): New type. + (My_Table): New global variable. + * testsuite/gdb.ada/array_char_idx.exp: Add test. + 2018-01-04 Joel Brobecker <brobecker@adacore.com> PR gdb/22670 diff --git a/gdb/testsuite/gdb.ada/array_char_idx.exp b/gdb/testsuite/gdb.ada/array_char_idx.exp index 2608a8e..89805fb 100644 --- a/gdb/testsuite/gdb.ada/array_char_idx.exp +++ b/gdb/testsuite/gdb.ada/array_char_idx.exp @@ -30,3 +30,6 @@ gdb_test "ptype char_table" \ gdb_test "ptype global_char_table" \ "= array \\(character\\) of natural" + +gdb_test "print my_table" "= \\(0 <repeats 256 times>\\)" \ + "Display my_table" diff --git a/gdb/testsuite/gdb.ada/array_char_idx/pck.ads b/gdb/testsuite/gdb.ada/array_char_idx/pck.ads index a26393a..699fef9 100644 --- a/gdb/testsuite/gdb.ada/array_char_idx/pck.ads +++ b/gdb/testsuite/gdb.ada/array_char_idx/pck.ads @@ -19,5 +19,8 @@ package Pck is of Natural; Global_Char_Table : Char_Table := (others => 0); + type Table is array (Character) of Natural; + My_Table : Table := (others => 4874); + procedure Do_Nothing (A : System.Address); end Pck; |