This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[V4 00/21] Fortran dynamic array support
- From: Keven Boell <keven dot boell at intel dot com>
- To: gdb-patches at sourceware dot org
- Cc: Keven Boell <keven dot boell at intel dot com>
- Date: Wed, 14 Jan 2015 14:49:32 +0100
- Subject: [V4 00/21] Fortran dynamic array support
- Authentication-results: sourceware.org; auth=none
This patch series add 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. Furthermore this series add support for Fortran stride support.
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
Patch series V4 restructures the patches into more logical parts. Tests
were added directly to the functional changes, instead of the main dynamic
array tests to avoid one huge patch.
Keven Boell (18):
vla: introduce allocated/associated flags
vla: make dynamic fortran arrays functional.
test: basic tests for dynamic array evaluations in Fortran.
test: evaluate dynamic arrays using Fortran primitives.
test: dynamic arrays passed to subroutines.
test: correct ptype of dynamic arrays in Fortran.
test: evaluating allocation/association status
test: dynamic arrays passed to functions.
test: accessing dynamic array history values.
test: basic MI test for the dynamic array support.
test: test sizeof for dynamic fortran arrays.
test: add archer dynamic other frame test
vla: reconstruct value to compute bounds of target type
vla: use value constructor instead of raw-buffer manipulation
vla: get dynamic array corner cases to work
vla: Fortran dynamic string support
vla: add stride support to fortran arrays.
vla: add NEWS entry for dynamic array support
gdb/NEWS | 3 +
gdb/c-valprint.c | 11 +-
gdb/dwarf2loc.c | 16 ++
gdb/dwarf2loc.h | 6 +
gdb/dwarf2read.c | 181 +++++++++++++++++--
gdb/f-typeprint.c | 68 +++++---
gdb/f-valprint.c | 124 +++++--------
gdb/gdbtypes.c | 167 ++++++++++++++++--
gdb/gdbtypes.h | 43 +++++
.../gdb.fortran/dynamic-other-frame-stub.f90 | 24 +++
gdb/testsuite/gdb.fortran/dynamic-other-frame.exp | 39 +++++
gdb/testsuite/gdb.fortran/dynamic-other-frame.f90 | 36 ++++
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-func.exp | 61 +++++++
gdb/testsuite/gdb.fortran/vla-func.f90 | 71 ++++++++
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-stride.exp | 44 +++++
gdb/testsuite/gdb.fortran/vla-stride.f90 | 30 ++++
gdb/testsuite/gdb.fortran/vla-strings.exp | 104 +++++++++++
gdb/testsuite/gdb.fortran/vla-strings.f90 | 40 +++++
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/typeprint.c | 7 +
gdb/valarith.c | 23 ++-
gdb/valprint.c | 40 +++++
gdb/valprint.h | 4 +
gdb/value.c | 23 ++-
39 files changed, 2231 insertions(+), 139 deletions(-)
create mode 100644 gdb/testsuite/gdb.fortran/dynamic-other-frame-stub.f90
create mode 100644 gdb/testsuite/gdb.fortran/dynamic-other-frame.exp
create mode 100644 gdb/testsuite/gdb.fortran/dynamic-other-frame.f90
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-func.exp
create mode 100644 gdb/testsuite/gdb.fortran/vla-func.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-stride.exp
create mode 100644 gdb/testsuite/gdb.fortran/vla-stride.f90
create mode 100644 gdb/testsuite/gdb.fortran/vla-strings.exp
create mode 100644 gdb/testsuite/gdb.fortran/vla-strings.f90
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