[PATCH 0/2] fort_dyn_array: Enable basic Fortran dynamic array support

Keven Boell
2015-07-01T12:42:02Z

This patch series add basic Fortran dynamic array support to gdb.

It allows the user to evaluate a dynamic array like an ordinary static array
e.g. print its elements instead of printing the pointer to the array.
In addition the size of a dynamic array can be retrieved with gdbs builtin
sizeof operator.

1| integer, allocatable :: ary(:)
2| allocate(ary(5))
3| ary(:) = 42

(gdb) print ary
$1 = (42, 42, 42, 42, 42)

(gdb) print sizeof (ary)
$2 = 20

(gdb) ptype ary
type = integer(kind=4) (5)

This series is a follow up for the following C99 variable length array
support series:
https://sourceware.org/ml/gdb-patches/2013-12/msg00625.html

Keven Boell (2):
fort_dyn_array: add basic fortran dyn array support
fort_dyn_array: add basic test coverage

gdb/dwarf2loc.c | 11 ++
gdb/dwarf2loc.h | 4 +
gdb/dwarf2read.c | 16 ++
gdb/f-typeprint.c | 20 +++
gdb/gdbtypes.c | 33 +++-
gdb/gdbtypes.h | 28 +++
gdb/testsuite/gdb.fortran/vla-alloc-assoc.exp | 65 +++++++
gdb/testsuite/gdb.fortran/vla-datatypes.exp | 82 +++++++++
gdb/testsuite/gdb.fortran/vla-datatypes.f90 | 51 ++++++
gdb/testsuite/gdb.fortran/vla-history.exp | 62 +++++++
gdb/testsuite/gdb.fortran/vla-ptr-info.exp | 32 ++++
gdb/testsuite/gdb.fortran/vla-ptype-sub.exp | 87 ++++++++++
gdb/testsuite/gdb.fortran/vla-ptype.exp | 96 +++++++++++
gdb/testsuite/gdb.fortran/vla-sizeof.exp | 46 +++++
gdb/testsuite/gdb.fortran/vla-sub.f90 | 82 +++++++++
.../gdb.fortran/vla-value-sub-arbitrary.exp | 35 ++++
gdb/testsuite/gdb.fortran/vla-value-sub-finish.exp | 49 ++++++
gdb/testsuite/gdb.fortran/vla-value-sub.exp | 90 ++++++++++
gdb/testsuite/gdb.fortran/vla-value.exp | 148 ++++++++++++++++
gdb/testsuite/gdb.fortran/vla.f90 | 56 ++++++
gdb/testsuite/gdb.mi/mi-vla-fortran.exp | 182 ++++++++++++++++++++
gdb/testsuite/gdb.mi/vla.f90 | 42 +++++
gdb/valarith.c | 9 +-
gdb/valprint.c | 36 ++++
gdb/valprint.h | 4 +
25 files changed, 1360 insertions(+), 6 deletions(-)
create mode 100644 gdb/testsuite/gdb.fortran/vla-alloc-assoc.exp
create mode 100644 gdb/testsuite/gdb.fortran/vla-datatypes.exp
create mode 100644 gdb/testsuite/gdb.fortran/vla-datatypes.f90
create mode 100644 gdb/testsuite/gdb.fortran/vla-history.exp
create mode 100644 gdb/testsuite/gdb.fortran/vla-ptr-info.exp
create mode 100644 gdb/testsuite/gdb.fortran/vla-ptype-sub.exp
create mode 100644 gdb/testsuite/gdb.fortran/vla-ptype.exp
create mode 100644 gdb/testsuite/gdb.fortran/vla-sizeof.exp
create mode 100644 gdb/testsuite/gdb.fortran/vla-sub.f90
create mode 100644 gdb/testsuite/gdb.fortran/vla-value-sub-arbitrary.exp
create mode 100644 gdb/testsuite/gdb.fortran/vla-value-sub-finish.exp
create mode 100644 gdb/testsuite/gdb.fortran/vla-value-sub.exp
create mode 100644 gdb/testsuite/gdb.fortran/vla-value.exp
create mode 100644 gdb/testsuite/gdb.fortran/vla.f90
create mode 100644 gdb/testsuite/gdb.mi/mi-vla-fortran.exp
create mode 100644 gdb/testsuite/gdb.mi/vla.f90

--
1.7.9.5