public inbox for gdb-patches@sourceware.org
 help / color / mirror / Atom feed
* [PATCH v3 0/2] add support for accessing fields of extended types
@ 2022-04-05 15:51 Nils-Christian Kempke
  2022-04-05 15:51 ` [PATCH v3 1/2] gdb/fortran: " Nils-Christian Kempke
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Nils-Christian Kempke @ 2022-04-05 15:51 UTC (permalink / raw)
  To: gdb-patches; +Cc: tom, Nils-Christian Kempke

Hi all,

this is v3 of the series.  V2 has been already approved with minor
changes.  For the comments see here:

https://sourceware.org/pipermail/gdb-patches/2022-April/187348.html

and

https://sourceware.org/pipermail/gdb-patches/2022-April/187349.html

V2 can be found here:

https://sourceware.org/pipermail/gdb-patches/2022-March/186385.html

and v1 here:

https://sourceware.org/pipermail/gdb-patches/2022-January/185103.html

In v3 I rebased the changes to master and applied the two comments from
v2.  Additionally, I changed the use of fputs_filtered and fprintf_filtered
to gdb_puts and gdb_printf respectively as this was a recent refactoring
within GDB.

Changes since v2:

        * PATCH 1/2: Change copyright from 2016 to 2022.
        * PATCH 2/2: Replace inline comment "\\".  Use gdb_puts and
        gdb_printf over fputs_filtered and fprintf_filtered.

I do not have write-access to GDB so I would kindly ask to push this series.

Cheers,

Nils


Bernhard Heckel (2):
  gdb/fortran: add support for accessing fields of extended types
  gdb/fortran: print fortran extended types with ptype

 gdb/f-exp.y                                   |   7 +-
 gdb/f-lang.h                                  |  11 +
 gdb/f-typeprint.c                             |  24 ++-
 gdb/testsuite/gdb.fortran/oop_extend_type.exp | 190 ++++++++++++++++++
 gdb/testsuite/gdb.fortran/oop_extend_type.f90 |  69 +++++++
 gdb/valops.c                                  |   9 +
 6 files changed, 306 insertions(+), 4 deletions(-)
 create mode 100755 gdb/testsuite/gdb.fortran/oop_extend_type.exp
 create mode 100755 gdb/testsuite/gdb.fortran/oop_extend_type.f90

-- 
2.25.1

Intel Deutschland GmbH
Registered Address: Am Campeon 10, 85579 Neubiberg, Germany
Tel: +49 89 99 8853-0, www.intel.de <http://www.intel.de>
Managing Directors: Christin Eisenschmid, Sharon Heck, Tiffany Doon Silva  
Chairperson of the Supervisory Board: Nicole Lau
Registered Office: Munich
Commercial Register: Amtsgericht Muenchen HRB 186928


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH v3 1/2] gdb/fortran: add support for accessing fields of extended types
  2022-04-05 15:51 [PATCH v3 0/2] add support for accessing fields of extended types Nils-Christian Kempke
@ 2022-04-05 15:51 ` Nils-Christian Kempke
  2022-04-05 15:51 ` [PATCH v3 2/2] gdb/fortran: print fortran extended types with ptype Nils-Christian Kempke
  2022-04-08 10:55 ` [PATCH v3 0/2] add support for accessing fields of extended types Kempke, Nils-Christian
  2 siblings, 0 replies; 4+ messages in thread
From: Nils-Christian Kempke @ 2022-04-05 15:51 UTC (permalink / raw)
  To: gdb-patches; +Cc: tom, Bernhard Heckel, Nils-Christian Kempke

From: Bernhard Heckel <bernhard.heckel@intel.com>

Fortran 2003 supports type extension.  This patch allows access
to inherited members by using their fully qualified name as described
in the Fortran standard.

In doing so the patch also fixes a bug in GDB when trying to access the
members of a base class in a derived class via the derived class' base
class member.

This patch fixes PR22497 and PR26373 on GDB side.

Using the example Fortran program from PR22497

program mvce
  implicit none

  type :: my_type
     integer :: my_int
  end type my_type

  type, extends(my_type) :: extended_type
  end type extended_type

  type(my_type) :: foo
  type(extended_type) :: bar

  foo%my_int = 0
  bar%my_int = 1

  print*, foo, bar

end program mvce

and running this with GDB and setting a BP at 17:

Before:
(gdb) p bar%my_type
A syntax error in expression, near `my_type'.
(gdb) p bar%my_int
There is no member named my_int.
(gdb) p bar%my_type%my_int
A syntax error in expression, near `my_type%my_int'.
(gdb) p bar
$1 = ( my_type = ( my_int = 1 ) )

After:
(gdb) p bar%my_type
$1 = ( my_int = 1 )
(gdb) p bar%my_int
$2 = 1                 # this line requires DW_TAG_inheritance to work
(gdb) p bar%my_type%my_int
$3 = 1
(gdb) p bar
$4 = ( my_type = ( my_int = 1 ) )

In the above example "p bar%my_int" requires the compiler to emit
information about the inheritance relationship between extended_type
and my_type which gfortran and flang currently do not de.  The
respective issue gcc/49475 has been put as kfail.

Co-authored-by: Nils-Christian Kempke <nils-christian.kempke@intel.com>
Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=26373
     https://sourceware.org/bugzilla/show_bug.cgi?id=22497
---
 gdb/f-exp.y                                   |   7 +-
 gdb/testsuite/gdb.fortran/oop_extend_type.exp | 159 ++++++++++++++++++
 gdb/testsuite/gdb.fortran/oop_extend_type.f90 |  69 ++++++++
 gdb/valops.c                                  |   9 +
 4 files changed, 242 insertions(+), 2 deletions(-)
 create mode 100755 gdb/testsuite/gdb.fortran/oop_extend_type.exp
 create mode 100755 gdb/testsuite/gdb.fortran/oop_extend_type.f90

diff --git a/gdb/f-exp.y b/gdb/f-exp.y
index 9cba30f683..f9622e63fb 100644
--- a/gdb/f-exp.y
+++ b/gdb/f-exp.y
@@ -808,8 +808,11 @@ nonempty_typelist
 		}
 	;
 
-name	:	NAME
-		{  $$ = $1.stoken; }
+name
+	:	NAME
+		{ $$ = $1.stoken; }
+	|	TYPENAME
+		{ $$ = $1.stoken; }
 	;
 
 name_not_typename :	NAME
diff --git a/gdb/testsuite/gdb.fortran/oop_extend_type.exp b/gdb/testsuite/gdb.fortran/oop_extend_type.exp
new file mode 100755
index 0000000000..eefc66c951
--- /dev/null
+++ b/gdb/testsuite/gdb.fortran/oop_extend_type.exp
@@ -0,0 +1,159 @@
+# Copyright 2022 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+standard_testfile ".f90"
+load_lib "fortran.exp"
+
+if { [skip_fortran_tests] } {
+    return -1
+}
+
+if { [prepare_for_testing ${testfile}.exp ${testfile} ${srcfile} \
+     {debug f90 quiet}] } {
+	 return -1
+}
+
+if ![fortran_runto_main] {
+    perror "could not run to main"
+    return -1
+}
+
+# Depending on the compiler being used, the type names can be printed differently.
+set real [fortran_real4]
+set logical [fortran_logical4]
+
+set line1 [gdb_get_line_number "! Before vla allocation"]
+gdb_breakpoint $line1
+gdb_continue_to_breakpoint "line1" ".*$srcfile:$line1.*"
+
+gdb_test "whatis wp_vla" "type = Type waypoint, allocatable \\(:\\)" \
+    "whatis wp_vla before allocation"
+
+set line2 [gdb_get_line_number "! After value assignment"]
+gdb_breakpoint $line2
+gdb_continue_to_breakpoint "line2" ".*$srcfile:$line2.*"
+
+# test print of wp
+set test "p wp%coo"
+gdb_test_multiple "$test" "$test" {
+    -re " = \\(1, 2, 1\\)\r\n$gdb_prompt $" {
+      pass "$test"
+    }
+    -re "There is no member named coo.\r\n$gdb_prompt $" {
+      kfail "gcc/49475" "$test"
+    }
+}
+gdb_test "p wp%point%coo" " = \\(1, 2, 1\\)"
+gdb_test "p wp%point" " = \\( coo = \\(1, 2, 1\\) \\)"
+gdb_test "p wp" " = \\( point = \\( coo = \\(1, 2, 1\\) \\), angle = 100 \\)"
+
+gdb_test "whatis wp" "type = Type waypoint"
+gdb_test "ptype wp" \
+  [multi_line "type = Type waypoint" \
+	      "    Type point :: point" \
+	      "    $real :: angle" \
+	      "End Type waypoint"]
+
+set test "ptype wp%coo"
+gdb_test_multiple "$test" "$test" {
+    -re "$real \\(3\\)\r\n$gdb_prompt $" {
+      pass "$test"
+    }
+    -re "There is no member named coo.\r\n$gdb_prompt $" {
+      kfail "gcc/49475" "$test"
+    }
+}
+gdb_test "ptype wp%point%coo" "$real \\(3\\)"
+
+# test print of fwp
+set test "p fwp%coo"
+gdb_test_multiple "$test" "$test" {
+    -re " = \\(1, 2, 2\\)\r\n$gdb_prompt $" {
+      pass "$test"
+    }
+    -re "There is no member named coo.\r\n$gdb_prompt $" {
+      kfail "gcc/49475" "$test"
+    }
+}
+gdb_test "p fwp%waypoint%point%coo" " = \\(1, 2, 2\\)"
+gdb_test "p fwp%waypoint%point" " = \\( coo = \\(1, 2, 2\\) \\)"
+gdb_test "p fwp%waypoint" \
+    " = \\( point = \\( coo = \\(1, 2, 2\\) \\), angle = 10 \\)"
+gdb_test "p fwp" \
+    " = \\( waypoint = \\( point = \\( coo = \\(1, 2, 2\\) \\), angle = 10 \\), is_fancy = \.TRUE\. \\)"
+
+set test "p fwp%angle"
+gdb_test_multiple "$test" "$test" {
+    -re " = 10\r\n$gdb_prompt $" {
+      pass "$test"
+    }
+    -re "There is no member named angle.\r\n$gdb_prompt $" {
+      kfail "gcc/49475" "$test"
+    }
+}
+
+gdb_test "whatis fwp" "type = Type fancywaypoint"
+gdb_test "ptype fwp" \
+  [multi_line "type = Type fancywaypoint" \
+	      "    Type waypoint :: waypoint" \
+	      "    $logical :: is_fancy" \
+	      "End Type fancywaypoint"]
+
+set test "ptype fwp%coo"
+gdb_test_multiple "$test" "$test" {
+    -re "$real \\(3\\)\r\n$gdb_prompt $" {
+      pass "$test"
+    }
+    -re "There is no member named coo.\r\n$gdb_prompt $" {
+      kfail "gcc/49475" "$test"
+    }
+}
+gdb_test "ptype fwp%waypoint%point%coo" "$real \\(3\\)"
+
+# test print of wp_vla
+set test "p wp_vla(1)%coo"
+gdb_test_multiple "$test" "$test" {
+    -re " = \\(10, 12, 10\\)\r\n$gdb_prompt $" {
+      pass "$test"
+    }
+    -re "There is no member named coo.\r\n$gdb_prompt $" {
+      kfail "gcc/49475" "$test"
+    }
+}
+
+gdb_test "p wp_vla(1)%point%coo" " = \\(10, 12, 10\\)"
+gdb_test "p wp_vla(1)%point" " = \\( coo = \\(10, 12, 10\\) \\)"
+gdb_test "p wp_vla(1)" " = \\( point = \\( coo = \\(10, 12, 10\\) \\), angle = 101 \\)"
+
+gdb_test "whatis wp_vla" "type = Type waypoint, allocatable \\(3\\)" \
+    "whatis wp_vla after allocation"
+
+gdb_test "ptype wp_vla" \
+  [multi_line "type = Type waypoint" \
+	      "    Type point :: point" \
+	      "    $real :: angle" \
+	      "End Type waypoint, allocatable \\(3\\)"]
+
+set test "ptype wp_vla(1)%coo"
+gdb_test_multiple "$test" "$test" {
+    -re "$real \\(3\\)\r\n$gdb_prompt $" {
+      pass "$test"
+    }
+    -re "There is no member named coo.\r\n$gdb_prompt $" {
+      kfail "gcc/49475" "$test"
+    }
+}
+
+gdb_test "ptype wp_vla(1)%point%coo" "$real \\(3\\)"
diff --git a/gdb/testsuite/gdb.fortran/oop_extend_type.f90 b/gdb/testsuite/gdb.fortran/oop_extend_type.f90
new file mode 100755
index 0000000000..dc91c45c60
--- /dev/null
+++ b/gdb/testsuite/gdb.fortran/oop_extend_type.f90
@@ -0,0 +1,69 @@
+! Copyright 2022 Free Software Foundation, Inc.
+!
+! This program is free software; you can redistribute it and/or modify
+! it under the terms of the GNU General Public License as published by
+! the Free Software Foundation; either version 3 of the License, or
+! (at your option) any later version.
+!
+! This program is distributed in the hope that it will be useful,
+! but WITHOUT ANY WARRANTY; without even the implied warranty of
+! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+! GNU General Public License for more details.
+!
+! You should have received a copy of the GNU General Public License
+! along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+! Test fortran extends feature (also for chained extends).
+module testmod
+    implicit none
+    type :: point
+	real :: coo(3)
+    end type
+
+    type, extends(point) :: waypoint
+	real :: angle
+    end type
+
+    type, extends(waypoint) :: fancywaypoint
+	logical :: is_fancy
+    end type
+end module
+
+program testprog
+    use testmod
+    implicit none
+
+    logical l
+    type(waypoint) :: wp
+    type(fancywaypoint) :: fwp
+    type(waypoint), allocatable :: wp_vla(:)
+
+    l = .FALSE.
+    allocate(wp_vla(3)) ! Before vla allocation
+
+    l = allocated(wp_vla) ! After vla allocation
+
+    wp%angle = 100.00
+    wp%coo(:) = 1.00
+    wp%coo(2) = 2.00
+
+    fwp%is_fancy = .TRUE.
+    fwp%angle = 10.00
+    fwp%coo(:) = 2.00
+    fwp%coo(1) = 1.00
+
+    wp_vla(1)%angle = 101.00
+    wp_vla(1)%coo(:) = 10.00
+    wp_vla(1)%coo(2) = 12.00
+
+    wp_vla(2)%angle = 102.00
+    wp_vla(2)%coo(:) = 20.00
+    wp_vla(2)%coo(2) = 22.00
+
+    wp_vla(3)%angle = 103.00
+    wp_vla(3)%coo(:) = 30.00
+    wp_vla(3)%coo(2) = 32.00
+
+    print *, wp, wp_vla, fwp ! After value assignment
+
+end program
diff --git a/gdb/valops.c b/gdb/valops.c
index 75d52b495b..67209ce6cd 100644
--- a/gdb/valops.c
+++ b/gdb/valops.c
@@ -2374,6 +2374,15 @@ value_struct_elt (struct value **argp,
       if (v)
 	return v;
 
+      if (current_language->la_language == language_fortran)
+	{
+	  /* If it is not a field it is the type name of an inherited
+	  structure.  */
+	  v = search_struct_field (name, *argp, t, 1);
+	  if (v)
+	    return v;
+	}
+
       /* C++: If it was not found as a data field, then try to
 	 return it as a pointer to a method.  */
       v = search_struct_method (name, argp, args, 0,
-- 
2.25.1

Intel Deutschland GmbH
Registered Address: Am Campeon 10, 85579 Neubiberg, Germany
Tel: +49 89 99 8853-0, www.intel.de <http://www.intel.de>
Managing Directors: Christin Eisenschmid, Sharon Heck, Tiffany Doon Silva  
Chairperson of the Supervisory Board: Nicole Lau
Registered Office: Munich
Commercial Register: Amtsgericht Muenchen HRB 186928


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH v3 2/2] gdb/fortran: print fortran extended types with ptype
  2022-04-05 15:51 [PATCH v3 0/2] add support for accessing fields of extended types Nils-Christian Kempke
  2022-04-05 15:51 ` [PATCH v3 1/2] gdb/fortran: " Nils-Christian Kempke
@ 2022-04-05 15:51 ` Nils-Christian Kempke
  2022-04-08 10:55 ` [PATCH v3 0/2] add support for accessing fields of extended types Kempke, Nils-Christian
  2 siblings, 0 replies; 4+ messages in thread
From: Nils-Christian Kempke @ 2022-04-05 15:51 UTC (permalink / raw)
  To: gdb-patches; +Cc: tom, Bernhard Heckel, Nils-Christian Kempke

From: Bernhard Heckel <bernhard.heckel@intel.com>

Add the print of the base-class of an extended type to the output of
ptype.  This requires the Fortran compiler to emit DW_AT_inheritance
for the extended type.

Co-authored-by: Nils-Christian Kempke <nils-christian.kempke@intel.com>
---
 gdb/f-lang.h                                  | 11 ++++
 gdb/f-typeprint.c                             | 24 ++++++-
 gdb/testsuite/gdb.fortran/oop_extend_type.exp | 65 ++++++++++++++-----
 3 files changed, 81 insertions(+), 19 deletions(-)

diff --git a/gdb/f-lang.h b/gdb/f-lang.h
index 2a1f6c7e73..f92d3b01c7 100644
--- a/gdb/f-lang.h
+++ b/gdb/f-lang.h
@@ -266,6 +266,17 @@ class f_language : public language_defn
 				    int arrayprint_recurse_level,
 				    bool print_rank_only) const;
 
+  /* If TYPE is an extended type, then print out derivation information.
+
+     A typical output could look like this:
+     "Type, extends(point) :: waypoint"
+     "    Type point :: point"
+     "    real(kind=4) :: angle"
+     "End Type waypoint".  */
+
+  void f_type_print_derivation_info (struct type *type,
+				     struct ui_file *stream) const;
+
   /* Print the name of the type (or the ultimate pointer target, function
      value or array element), or the description of a structure or union.
 
diff --git a/gdb/f-typeprint.c b/gdb/f-typeprint.c
index 31786d4ea1..170187c674 100644
--- a/gdb/f-typeprint.c
+++ b/gdb/f-typeprint.c
@@ -284,6 +284,19 @@ f_language::f_type_print_varspec_suffix (struct type *type,
 
 /* See f-lang.h.  */
 
+void
+f_language::f_type_print_derivation_info (struct type *type,
+					  struct ui_file *stream) const
+{
+  /* Fortran doesn't support multiple inheritance.  */
+  const int i = 0;
+
+  if (TYPE_N_BASECLASSES (type) > 0)
+    gdb_printf (stream, ", extends(%s) ::", TYPE_BASECLASS (type, i)->name ());
+}
+
+/* See f-lang.h.  */
+
 void
 f_language::f_type_print_base (struct type *type, struct ui_file *stream,
 			       int show, int level) const
@@ -396,10 +409,17 @@ f_language::f_type_print_base (struct type *type, struct ui_file *stream,
     case TYPE_CODE_UNION:
     case TYPE_CODE_NAMELIST:
       if (type->code () == TYPE_CODE_UNION)
-	gdb_printf (stream, "%*sType, C_Union :: ", level, "");
+	gdb_printf (stream, "%*sType, C_Union ::", level, "");
       else
-	gdb_printf (stream, "%*sType ", level, "");
+	gdb_printf (stream, "%*sType", level, "");
+
+      if (show > 0)
+	f_type_print_derivation_info (type, stream);
+
+      gdb_puts (" ", stream);
+
       gdb_puts (type->name (), stream);
+
       /* According to the definition,
 	 we only print structure elements in case show > 0.  */
       if (show > 0)
diff --git a/gdb/testsuite/gdb.fortran/oop_extend_type.exp b/gdb/testsuite/gdb.fortran/oop_extend_type.exp
index eefc66c951..00cfffa0b6 100755
--- a/gdb/testsuite/gdb.fortran/oop_extend_type.exp
+++ b/gdb/testsuite/gdb.fortran/oop_extend_type.exp
@@ -60,12 +60,24 @@ gdb_test "p wp%point" " = \\( coo = \\(1, 2, 1\\) \\)"
 gdb_test "p wp" " = \\( point = \\( coo = \\(1, 2, 1\\) \\), angle = 100 \\)"
 
 gdb_test "whatis wp" "type = Type waypoint"
-gdb_test "ptype wp" \
-  [multi_line "type = Type waypoint" \
-	      "    Type point :: point" \
-	      "    $real :: angle" \
-	      "End Type waypoint"]
-
+set output_pass_wp [multi_line "type = Type, extends\\(point\\) :: waypoint" \
+			       "    Type point :: point" \
+			       "    $real :: angle" \
+			       "End Type waypoint(, allocatable)?"]
+set output_kfail_wp [multi_line "type = Type waypoint" \
+			        "    Type point :: point" \
+			        "    $real :: angle" \
+			        "End Type waypoint(, allocatable)?"]
+
+set test "ptype wp"
+gdb_test_multiple "$test" "$test" {
+    -re "$output_pass_wp\r\n$gdb_prompt $" {
+      pass "$test"
+    }
+    -re "$output_kfail_wp\r\n$gdb_prompt $" {
+      kfail "gcc/49475" "$test"
+    }
+}
 set test "ptype wp%coo"
 gdb_test_multiple "$test" "$test" {
     -re "$real \\(3\\)\r\n$gdb_prompt $" {
@@ -105,11 +117,27 @@ gdb_test_multiple "$test" "$test" {
 }
 
 gdb_test "whatis fwp" "type = Type fancywaypoint"
-gdb_test "ptype fwp" \
-  [multi_line "type = Type fancywaypoint" \
-	      "    Type waypoint :: waypoint" \
-	      "    $logical :: is_fancy" \
-	      "End Type fancywaypoint"]
+set test "ptype fwp"
+
+set output_pass_fwp \
+    [multi_line "type = Type, extends\\(waypoint\\) :: fancywaypoint" \
+		"    Type waypoint :: waypoint" \
+		"    $logical :: is_fancy" \
+		"End Type fancywaypoint"]
+set output_kfail_fwp \
+    [multi_line "type = Type fancywaypoint" \
+		"    Type waypoint :: waypoint" \
+		"    $logical :: is_fancy" \
+		"End Type fancywaypoint"]
+
+gdb_test_multiple "$test" "$test" {
+    -re "$output_pass_fwp\r\n$gdb_prompt $" {
+	pass  "$test"
+    }
+    -re "$output_kfail_fwp\r\n$gdb_prompt $" {
+	kfail "gcc/49475" "$test"
+    }
+}
 
 set test "ptype fwp%coo"
 gdb_test_multiple "$test" "$test" {
@@ -140,12 +168,15 @@ gdb_test "p wp_vla(1)" " = \\( point = \\( coo = \\(10, 12, 10\\) \\), angle = 1
 gdb_test "whatis wp_vla" "type = Type waypoint, allocatable \\(3\\)" \
     "whatis wp_vla after allocation"
 
-gdb_test "ptype wp_vla" \
-  [multi_line "type = Type waypoint" \
-	      "    Type point :: point" \
-	      "    $real :: angle" \
-	      "End Type waypoint, allocatable \\(3\\)"]
-
+set test "ptype wp_vla"
+gdb_test_multiple "$test" "$test" {
+    -re "$output_pass_wp \\(3\\)\r\n$gdb_prompt $" {
+      pass "$test"
+    }
+    -re "$output_kfail_wp \\(3\\)\r\n$gdb_prompt $" {
+      kfail "gcc/49475" "$test"
+    }
+}
 set test "ptype wp_vla(1)%coo"
 gdb_test_multiple "$test" "$test" {
     -re "$real \\(3\\)\r\n$gdb_prompt $" {
-- 
2.25.1

Intel Deutschland GmbH
Registered Address: Am Campeon 10, 85579 Neubiberg, Germany
Tel: +49 89 99 8853-0, www.intel.de <http://www.intel.de>
Managing Directors: Christin Eisenschmid, Sharon Heck, Tiffany Doon Silva  
Chairperson of the Supervisory Board: Nicole Lau
Registered Office: Munich
Commercial Register: Amtsgericht Muenchen HRB 186928


^ permalink raw reply	[flat|nested] 4+ messages in thread

* RE: [PATCH v3 0/2] add support for accessing fields of extended types
  2022-04-05 15:51 [PATCH v3 0/2] add support for accessing fields of extended types Nils-Christian Kempke
  2022-04-05 15:51 ` [PATCH v3 1/2] gdb/fortran: " Nils-Christian Kempke
  2022-04-05 15:51 ` [PATCH v3 2/2] gdb/fortran: print fortran extended types with ptype Nils-Christian Kempke
@ 2022-04-08 10:55 ` Kempke, Nils-Christian
  2 siblings, 0 replies; 4+ messages in thread
From: Kempke, Nils-Christian @ 2022-04-08 10:55 UTC (permalink / raw)
  To: gdb-patches; +Cc: tom

After now having write-after-approval access, I pushed this series now.

Cheers,
Nils

> -----Original Message-----
> From: Kempke, Nils-Christian <nils-christian.kempke@intel.com>
> Sent: Tuesday, April 5, 2022 5:51 PM
> To: gdb-patches@sourceware.org
> Cc: tom@tromey.com; Kempke, Nils-Christian <nils-
> christian.kempke@intel.com>
> Subject: [PATCH v3 0/2] add support for accessing fields of extended types
> 
> Hi all,
> 
> this is v3 of the series.  V2 has been already approved with minor
> changes.  For the comments see here:
> 
> https://sourceware.org/pipermail/gdb-patches/2022-April/187348.html
> 
> and
> 
> https://sourceware.org/pipermail/gdb-patches/2022-April/187349.html
> 
> V2 can be found here:
> 
> https://sourceware.org/pipermail/gdb-patches/2022-March/186385.html
> 
> and v1 here:
> 
> https://sourceware.org/pipermail/gdb-patches/2022-January/185103.html
> 
> In v3 I rebased the changes to master and applied the two comments from
> v2.  Additionally, I changed the use of fputs_filtered and fprintf_filtered
> to gdb_puts and gdb_printf respectively as this was a recent refactoring
> within GDB.
> 
> Changes since v2:
> 
>         * PATCH 1/2: Change copyright from 2016 to 2022.
>         * PATCH 2/2: Replace inline comment "\\".  Use gdb_puts and
>         gdb_printf over fputs_filtered and fprintf_filtered.
> 
> I do not have write-access to GDB so I would kindly ask to push this series.
> 
> Cheers,
> 
> Nils
> 
> 
> Bernhard Heckel (2):
>   gdb/fortran: add support for accessing fields of extended types
>   gdb/fortran: print fortran extended types with ptype
> 
>  gdb/f-exp.y                                   |   7 +-
>  gdb/f-lang.h                                  |  11 +
>  gdb/f-typeprint.c                             |  24 ++-
>  gdb/testsuite/gdb.fortran/oop_extend_type.exp | 190
> ++++++++++++++++++
>  gdb/testsuite/gdb.fortran/oop_extend_type.f90 |  69 +++++++
>  gdb/valops.c                                  |   9 +
>  6 files changed, 306 insertions(+), 4 deletions(-)
>  create mode 100755 gdb/testsuite/gdb.fortran/oop_extend_type.exp
>  create mode 100755 gdb/testsuite/gdb.fortran/oop_extend_type.f90
> 
> --
> 2.25.1

Intel Deutschland GmbH
Registered Address: Am Campeon 10, 85579 Neubiberg, Germany
Tel: +49 89 99 8853-0, www.intel.de <http://www.intel.de>
Managing Directors: Christin Eisenschmid, Sharon Heck, Tiffany Doon Silva  
Chairperson of the Supervisory Board: Nicole Lau
Registered Office: Munich
Commercial Register: Amtsgericht Muenchen HRB 186928


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2022-04-08 10:55 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-04-05 15:51 [PATCH v3 0/2] add support for accessing fields of extended types Nils-Christian Kempke
2022-04-05 15:51 ` [PATCH v3 1/2] gdb/fortran: " Nils-Christian Kempke
2022-04-05 15:51 ` [PATCH v3 2/2] gdb/fortran: print fortran extended types with ptype Nils-Christian Kempke
2022-04-08 10:55 ` [PATCH v3 0/2] add support for accessing fields of extended types Kempke, Nils-Christian

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).