Respect `set print array-indexes' with Fortran arrays
authorMaciej W. Rozycki <macro@embecosm.com>
Wed, 19 Jan 2022 21:55:10 +0000 (21:55 +0000)
committerMaciej W. Rozycki <macro@embecosm.com>
Wed, 19 Jan 2022 21:55:10 +0000 (21:55 +0000)
commit5d4c63a635546c77bfa7ebabf944cb1d93f5c6fe
tree24578c89a2818792cb8ded824abc1118d26edfc7
parent6b4338c868e96a549af44fdf17141f4eac77e225
Respect `set print array-indexes' with Fortran arrays

Add `set print array-indexes' handling for Fortran arrays.  Currently
the setting is ignored and indices are never shown.

Keep track of the most recent index handled so that any outstanding
repeated elements printed when the limit set by `set print elements' is
hit have the correct index shown.

Output now looks like:

(gdb) set print array-indexes on
(gdb) print array_1d
$1 = ((-2) = 1, (-1) = 1, (0) = 1, (1) = 1, (2) = 1)
(gdb) set print repeats 4
(gdb) set print elements 12
(gdb) print array_2d
$2 = ((-2) = ((-2) = 2, <repeats 5 times>) (-1) = ((-2) = 2, <repeats 5 times>) (0) = ((-2) = 2, (-1) = 2, ...) ...)
(gdb)

for a 5-element vector and a 5 by 5 array filled with the value of 2.
gdb/f-array-walker.h
gdb/f-lang.c
gdb/f-lang.h
gdb/f-valprint.c
gdb/testsuite/gdb.fortran/array-indices.exp [new file with mode: 0644]