This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[V3 00/21] Fortran dynamic array support
- From: Keven Boell <keven dot boell at intel dot com>
- To: gdb-patches at sourceware dot org
- Cc: sanimir dot agovic at intel dot com, Keven Boell <keven dot boell at intel dot com>
- Date: Wed, 10 Sep 2014 11:21:48 +0200
- Subject: [V3 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 V3 mainly addresses issues/comments given for V1/V2.
Keven Boell (21):
vla: introduce allocated/associated flags
vla: make dynamic fortran arrays functional.
vla: make field selection work with vla
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: changed string length semantic.
vla: get Fortran dynamic strings working.
vla: add stride support to fortran arrays.
vla: add NEWS entry for dynamic array support
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: dynamic string evaluations.
test: basic MI test for the dynamic array support.
test: test sizeof for dynamic fortran arrays.
test: stride support for dynamic arrays.
gdb/NEWS | 3 +
gdb/c-valprint.c | 11 +-
gdb/dwarf2loc.c | 19 ++
gdb/dwarf2loc.h | 6 +
gdb/dwarf2read.c | 181 +++++++++++++++++--
gdb/f-typeprint.c | 68 +++++---
gdb/f-valprint.c | 124 +++++--------
gdb/gdbtypes.c | 165 ++++++++++++++++--
gdb/gdbtypes.h | 43 +++++
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-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 | 44 ++++-
35 files changed, 2117 insertions(+), 144 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-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-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