public inbox for gdb-patches@sourceware.org
 help / color / mirror / Atom feed
* [PATCH V2] Improve user experience in printing Fortran derived types.
@ 2016-03-18 10:26 Walfred Tedeschi
  2016-04-05 11:47 ` Yao Qi
  0 siblings, 1 reply; 6+ messages in thread
From: Walfred Tedeschi @ 2016-03-18 10:26 UTC (permalink / raw)
  To: palves, brobecker; +Cc: gdb-patches, Walfred Tedeschi

Output for Fortran derived classes is like:

  "( 9, 'abc')"

with this changes the output is changed to:

  "( lucky_number = 9, letters = 'abc')"

2016-03-08  Walfred Tedeschi  <walfred.tedeschi@intel.com>

	* f-valprint.c (f_val_print): Add field names for printing
	derived types fields.

gdb/testsuite:

	* gdb.fortran/derived-type.exp (print q): Add fields to the output.

---
 gdb/f-valprint.c                           | 38 +++++++++++++++++++++++-------
 gdb/testsuite/gdb.fortran/derived-type.exp |  6 ++---
 2 files changed, 32 insertions(+), 12 deletions(-)

diff --git a/gdb/f-valprint.c b/gdb/f-valprint.c
index 1438fc6..13c7237 100644
--- a/gdb/f-valprint.c
+++ b/gdb/f-valprint.c
@@ -260,6 +260,7 @@ f_val_print (struct type *type, const gdb_byte *valaddr, int embedded_offset,
   struct gdbarch *gdbarch = get_type_arch (type);
   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
   unsigned int i = 0;	/* Number of characters printed.  */
+  int printed_field = 0; /* Number of fields printed.  */
   struct type *elttype;
   CORE_ADDR addr;
   int index;
@@ -375,15 +376,34 @@ f_val_print (struct type *type, const gdb_byte *valaddr, int embedded_offset,
       fprintf_filtered (stream, "( ");
       for (index = 0; index < TYPE_NFIELDS (type); index++)
         {
-          int offset = TYPE_FIELD_BITPOS (type, index) / 8;
-
-          val_print (TYPE_FIELD_TYPE (type, index), valaddr,
-		     embedded_offset + offset,
-		     address, stream, recurse + 1,
-		     original_value, options, current_language);
-          if (index != TYPE_NFIELDS (type) - 1)
-            fputs_filtered (", ", stream);
-        }
+	  struct value *field = value_field
+	    ((struct value *)original_value, index);
+	  struct type *field_type = check_typedef (TYPE_FIELD_TYPE (type, index));
+
+
+	  if (TYPE_CODE (field_type) != TYPE_CODE_FUNC)
+	    {
+	      const char *field_name;
+
+	      if (printed_field > 0)
+		fputs_filtered (", ", stream);
+
+	      field_name = TYPE_FIELD_NAME (type, index);
+	      if (field_name != NULL)
+		{
+		  fputs_filtered (field_name, stream);
+		  fputs_filtered (" = ", stream);
+		}
+
+	      val_print (value_type (field),
+			 value_contents_for_printing (field),
+			 value_embedded_offset (field),
+			 value_address (field), stream, recurse + 1,
+			 field, options, current_language);
+
+	      ++printed_field;
+	    }
+	 }
       fprintf_filtered (stream, " )");
       break;     
 
diff --git a/gdb/testsuite/gdb.fortran/derived-type.exp b/gdb/testsuite/gdb.fortran/derived-type.exp
index f7f10b5..f650352 100644
--- a/gdb/testsuite/gdb.fortran/derived-type.exp
+++ b/gdb/testsuite/gdb.fortran/derived-type.exp
@@ -54,7 +54,7 @@ gdb_test_multiple "ptype q" $test {
 gdb_breakpoint [gdb_get_line_number "print"]
 gdb_continue_to_breakpoint "print"
 
-gdb_test "print p" "\\$\[0-9\]+ = \\( 1, 2\\.375 \\)"
+gdb_test "print p" "\\$\[0-9\]+ = \\( c = 1, d = 2\\.375 \\)"
 gdb_test "print p%c" "\\$\[0-9\]+ = 1"
 gdb_test "print p%d" "\\$\[0-9\]+ = 2\\.375"
 gdb_test "print q%a" "\\$\[0-9\]+ = 3\\.125"
@@ -76,10 +76,10 @@ gdb_test "print q%x%d" "\\$\[0-9\]+ = 2\\.375"
 
 set test "print q"
 gdb_test_multiple $test $test {
-    -re "\\$\[0-9\]+ = \\( 3.125, \\( 1, 2\\.375 \\), 'abcdefg' \\)\r\n$gdb_prompt $" {
+    -re "\\$\[0-9\]+ = \\( a = 3.125, x = \\( c = 1, d = 2\\.375 \\), b = 'abcdefg' \\)\r\n$gdb_prompt $" {
 	pass $test
     }
-    -re "\\$\[0-9\]+ = \\( 3.125, \\( 1, 2\\.375 \\), \\(97 'a', 98 'b', 99 'c', 100 'd', 101 'e', 102 'f', 103 'g'\\) \\)\r\n$gdb_prompt $" {
+    -re "\\$\[0-9\]+ = \\( a = 3.125, x = \\( 1, 2\\.375 \\), b = \\('abcdefg'\\) \\)\r\n$gdb_prompt $" {
 	# Compiler should produce string, not an array of characters.
 	setup_xfail "*-*-*"
 	fail $test
-- 
2.1.4

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

* Re: [PATCH V2] Improve user experience in printing Fortran derived types.
  2016-03-18 10:26 [PATCH V2] Improve user experience in printing Fortran derived types Walfred Tedeschi
@ 2016-04-05 11:47 ` Yao Qi
  2016-04-05 12:17   ` Walfred Tedeschi
  0 siblings, 1 reply; 6+ messages in thread
From: Yao Qi @ 2016-04-05 11:47 UTC (permalink / raw)
  To: Walfred Tedeschi; +Cc: palves, brobecker, gdb-patches

Walfred Tedeschi <walfred.tedeschi@intel.com> writes:

> +  int printed_field = 0; /* Number of fields printed.  */
>    struct type *elttype;
>    CORE_ADDR addr;
>    int index;
> @@ -375,15 +376,34 @@ f_val_print (struct type *type, const gdb_byte *valaddr, int embedded_offset,
>        fprintf_filtered (stream, "( ");
>        for (index = 0; index < TYPE_NFIELDS (type); index++)
>          {
> -          int offset = TYPE_FIELD_BITPOS (type, index) / 8;
> -
> -          val_print (TYPE_FIELD_TYPE (type, index), valaddr,
> -		     embedded_offset + offset,
> -		     address, stream, recurse + 1,
> -		     original_value, options, current_language);


> -          if (index != TYPE_NFIELDS (type) - 1)
> -            fputs_filtered (", ", stream);
> -        }

Why don't we continue using this code above? so that do need to add
'printed_field'.

> +	  struct value *field =
> +	    ((struct value *)original_value, index);

A space is needed after ")".

> +	  struct type *field_type = check_typedef (TYPE_FIELD_TYPE (type, index));
> +
> +
> +	  if (TYPE_CODE (field_type) != TYPE_CODE_FUNC)
> +	    {

We didn't do this check before, why do we need this check now?

-- 
Yao (齐尧)

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

* Re: [PATCH V2] Improve user experience in printing Fortran derived types.
  2016-04-05 11:47 ` Yao Qi
@ 2016-04-05 12:17   ` Walfred Tedeschi
  2016-04-05 12:39     ` Yao Qi
  0 siblings, 1 reply; 6+ messages in thread
From: Walfred Tedeschi @ 2016-04-05 12:17 UTC (permalink / raw)
  To: Yao Qi, Pedro Alves; +Cc: gdb-patches

Yao,

Thanks for your review!

The idea is to have same look and fell as C/C++ code.
Only variables are displayed, not functions.
I based the patch in the C/C++ code, which is much younger.

Am 4/5/2016 um 1:46 PM schrieb Yao Qi:
> Walfred Tedeschi <walfred.tedeschi@intel.com> writes:
>
>> +  int printed_field = 0; /* Number of fields printed.  */
>>     struct type *elttype;
>>     CORE_ADDR addr;
>>     int index;
>> @@ -375,15 +376,34 @@ f_val_print (struct type *type, const gdb_byte *valaddr, int embedded_offset,
>>         fprintf_filtered (stream, "( ");
>>         for (index = 0; index < TYPE_NFIELDS (type); index++)
>>           {
>> -          int offset = TYPE_FIELD_BITPOS (type, index) / 8;
>> -
>> -          val_print (TYPE_FIELD_TYPE (type, index), valaddr,
>> -		     embedded_offset + offset,
>> -		     address, stream, recurse + 1,
>> -		     original_value, options, current_language);
>
>
>> -          if (index != TYPE_NFIELDS (type) - 1)
>> -            fputs_filtered (", ", stream);
>> -        }
>
> Why don't we continue using this code above? so that do need to add
> 'printed_field'.

We need print_field due to the code below. There we discard function 
members.

>
>> +	  struct value *field =
>> +	    ((struct value *)original_value, index);
>
> A space is needed after ")".
>
>> +	  struct type *field_type = check_typedef (TYPE_FIELD_TYPE (type, index));
>> +
>> +
>> +	  if (TYPE_CODE (field_type) != TYPE_CODE_FUNC)
>> +	    {
>
> We didn't do this check before, why do we need this check now?
>

Here member functions, or methods of the derived type, are discarded.

Thanks and regards,
-Fred
Intel Deutschland GmbH
Registered Address: Am Campeon 10-12, 85579 Neubiberg, Germany
Tel: +49 89 99 8853-0, www.intel.de
Managing Directors: Christin Eisenschmid, Christian Lamprechter
Chairperson of the Supervisory Board: Nicole Lau
Registered Office: Munich
Commercial Register: Amtsgericht Muenchen HRB 186928

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

* Re: [PATCH V2] Improve user experience in printing Fortran derived types.
  2016-04-05 12:17   ` Walfred Tedeschi
@ 2016-04-05 12:39     ` Yao Qi
  2016-05-02 12:35       ` Walfred Tedeschi
  0 siblings, 1 reply; 6+ messages in thread
From: Yao Qi @ 2016-04-05 12:39 UTC (permalink / raw)
  To: Walfred Tedeschi; +Cc: Yao Qi, Pedro Alves, gdb-patches

Walfred Tedeschi <walfred.tedeschi@intel.com> writes:

> Here member functions, or methods of the derived type, are discarded.

OK, so can we have a test case shown that methods of the derived type
are discarded in printing?

-- 
Yao (齐尧)

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

* Re: [PATCH V2] Improve user experience in printing Fortran derived types.
  2016-04-05 12:39     ` Yao Qi
@ 2016-05-02 12:35       ` Walfred Tedeschi
  2016-05-03 16:14         ` Yao Qi
  0 siblings, 1 reply; 6+ messages in thread
From: Walfred Tedeschi @ 2016-05-02 12:35 UTC (permalink / raw)
  To: Yao Qi; +Cc: Pedro Alves, gdb-patches

Am 4/5/2016 um 2:39 PM schrieb Yao Qi:
> Walfred Tedeschi <walfred.tedeschi@intel.com> writes:
>
>> Here member functions, or methods of the derived type, are discarded.
>
> OK, so can we have a test case shown that methods of the derived type
> are discarded in printing?
>

Yao,

Given a sample like:

module class_Square
   implicit none
   private

   type, public :: Square
      real :: height
    contains
      procedure :: area => square_area
      procedure :: print_area => print_area
   end type Square
contains
   function square_area(this) result(area)
     class(Square), intent(in) :: this
     real :: area
     area = this%height**2
   end function square_area

   subroutine print_area(this)
     class(Square), intent(in) :: this
     real :: area
     area = this%area()
     print *, ' area = ', area
   end subroutine print_area
end module class_Square


program square_Test
   use class_Square
   implicit none

   type(Square) :: aSquare
   aSquare = Square(2.1)
   call aSquare%print_area

end program square_test



The readelf for the binary is:
<1><2e>: Abbrev Number: 2 (DW_TAG_module)
     <2f>   DW_AT_decl_line   : 1
     <30>   DW_AT_decl_file   : 1
     <31>   DW_AT_name        : (indirect string, offset: 0xd9): 
class_square
  <2><35>: Abbrev Number: 3 (DW_TAG_subprogram)
     <36>   DW_AT_decl_line   : 11
     <37>   DW_AT_decl_file   : 1
     <38>   DW_AT_name        : (indirect string, offset: 0xe6): 
CLASS_SQUARE
     <3c>   DW_AT_low_pc      : 0x402640
     <44>   DW_AT_high_pc     : 0x402646
     <4c>   DW_AT_external    : 1
  <2><4d>: Abbrev Number: 4 (DW_TAG_subprogram)
     <4e>   DW_AT_decl_line   : 12
     <4f>   DW_AT_decl_file   : 1
     <50>   DW_AT_type        : <0x126>
     <54>   DW_AT_name        : (indirect string, offset: 0xfb): square_area
     <58>   DW_AT_low_pc      : 0x402646
     <60>   DW_AT_high_pc     : 0x402688
     <68>   DW_AT_external    : 1
  <3><69>: Abbrev Number: 5 (DW_TAG_formal_parameter)
     <6a>   DW_AT_decl_line   : 12
     <6b>   DW_AT_decl_file   : 1
     <6c>   DW_AT_type        : <0x12d>
     <70>   DW_AT_name        : (indirect string, offset: 0x124): this
     <74>   DW_AT_location    : 3 byte block: 76 68 6 	(DW_OP_breg6 
(rbp): -24; DW_OP_deref)
  <3><78>: Abbrev Number: 6 (DW_TAG_structure_type)
     <79>   DW_AT_decl_line   : 5
     <7a>   DW_AT_decl_file   : 1
     <7b>   DW_AT_byte_size   : 4
     <7c>   DW_AT_name        : (indirect string, offset: 0xdf): square
  <4><80>: Abbrev Number: 7 (DW_TAG_member)
     <81>   DW_AT_decl_line   : 5
     <82>   DW_AT_decl_file   : 1
     <83>   DW_AT_data_member_location: 2 byte block: 23 0 
(DW_OP_plus_uconst: 0)
     <86>   DW_AT_name        : (indirect string, offset: 0x107): height
     <8a>   DW_AT_type        : <0x126>
  <4><8e>: Abbrev Number: 7 (DW_TAG_member)
     <8f>   DW_AT_decl_line   : 5
     <90>   DW_AT_decl_file   : 1
     <91>   DW_AT_data_member_location: 2 byte block: 23 0 
(DW_OP_plus_uconst: 0)
     <94>   DW_AT_name        : (indirect string, offset: 0x102): area
     <98>   DW_AT_type        : <0x138>
  <4><9c>: Abbrev Number: 7 (DW_TAG_member)
     <9d>   DW_AT_decl_line   : 5
     <9e>   DW_AT_decl_file   : 1
     <9f>   DW_AT_data_member_location: 2 byte block: 23 0 
(DW_OP_plus_uconst: 0)
     <a2>   DW_AT_name        : (indirect string, offset: 0x119): print_area
     <a6>   DW_AT_type        : <0x143>
  <4><aa>: Abbrev Number: 0
  <3><ab>: Abbrev Number: 8 (DW_TAG_variable)
     <ac>   DW_AT_decl_line   : 12
     <ad>   DW_AT_decl_file   : 1
     <ae>   DW_AT_name        : (indirect string, offset: 0x102): area
     <b2>   DW_AT_type        : <0x126>
     <b6>   DW_AT_location    : 2 byte block: 76 64 	(DW_OP_breg6 (rbp): 
-28)
  <3><b9>: Abbrev Number: 0
  <2><ba>: Abbrev Number: 9 (DW_TAG_subprogram)
     <bb>   DW_AT_decl_line   : 18
     <bc>   DW_AT_decl_file   : 1
     <bd>   DW_AT_name        : (indirect string, offset: 0x119): print_area
     <c1>   DW_AT_low_pc      : 0x402688
     <c9>   DW_AT_high_pc     : 0x40274a
     <d1>   DW_AT_external    : 1
  <3><d2>: Abbrev Number: 5 (DW_TAG_formal_parameter)
     <d3>   DW_AT_decl_line   : 18
     <d4>   DW_AT_decl_file   : 1
     <d5>   DW_AT_type        : <0x14a>
     <d9>   DW_AT_name        : (indirect string, offset: 0x124): this
     <dd>   DW_AT_location    : 4 byte block: 76 88 7f 6 	(DW_OP_breg6 
(rbp): -120; DW_OP_deref)
  <3><e2>: Abbrev Number: 6 (DW_TAG_structure_type)
     <e3>   DW_AT_decl_line   : 5
     <e4>   DW_AT_decl_file   : 1
     <e5>   DW_AT_byte_size   : 4
     <e6>   DW_AT_name        : (indirect string, offset: 0xdf): square
  <4><ea>: Abbrev Number: 7 (DW_TAG_member)
     <eb>   DW_AT_decl_line   : 5
     <ec>   DW_AT_decl_file   : 1
     <ed>   DW_AT_data_member_location: 2 byte block: 23 0 
(DW_OP_plus_uconst: 0)
     <f0>   DW_AT_name        : (indirect string, offset: 0x107): height
     <f4>   DW_AT_type        : <0x126>
  <4><f8>: Abbrev Number: 7 (DW_TAG_member)
     <f9>   DW_AT_decl_line   : 5
     <fa>   DW_AT_decl_file   : 1
     <fb>   DW_AT_data_member_location: 2 byte block: 23 0 
(DW_OP_plus_uconst: 0)
     <fe>   DW_AT_name        : (indirect string, offset: 0x102): area
     <102>   DW_AT_type        : <0x155>
  <4><106>: Abbrev Number: 7 (DW_TAG_member)
     <107>   DW_AT_decl_line   : 5
     <108>   DW_AT_decl_file   : 1
     <109>   DW_AT_data_member_location: 2 byte block: 23 0 
(DW_OP_plus_uconst: 0)
     <10c>   DW_AT_name        : (indirect string, offset: 0x119): 
print_area
     <110>   DW_AT_type        : <0x160>
  <4><114>: Abbrev Number: 0
  <3><115>: Abbrev Number: 8 (DW_TAG_variable)
     <116>   DW_AT_decl_line   : 20
     <117>   DW_AT_decl_file   : 1
     <118>   DW_AT_name        : (indirect string, offset: 0x102): area
     <11c>   DW_AT_type        : <0x126>
     <120>   DW_AT_location    : 3 byte block: 76 84 7f 	(DW_OP_breg6 
(rbp): -124)
  <3><124>: Abbrev Number: 0
  <2><125>: Abbrev Number: 0
  <1><126>: Abbrev Number: 10 (DW_TAG_base_type)
     <127>   DW_AT_byte_size   : 4
     <128>   DW_AT_encoding    : 4	(float)
     <129>   DW_AT_name        : (indirect string, offset: 0xf3): REAL(4)
  <1><12d>: Abbrev Number: 11 (DW_TAG_pointer_type)
     <12e>   DW_AT_type        : <0x78>
     <132>   DW_AT_associated  : 5 byte block: 97 6 10 0 2e 
(DW_OP_push_object_address; DW_OP_deref; DW_OP_constu: 0; DW_OP_ne)
  <1><138>: Abbrev Number: 12 (DW_TAG_subroutine_type)
     <139>   DW_AT_decl_line   : 8
     <13a>   DW_AT_decl_file   : 1
     <13b>   DW_AT_name        : (indirect string, offset: 0x114): AREA
     <13f>   DW_AT_type        : <0x126>
  <1><143>: Abbrev Number: 13 (DW_TAG_subroutine_type)
     <144>   DW_AT_decl_line   : 9
     <145>   DW_AT_decl_file   : 1
     <146>   DW_AT_name        : (indirect string, offset: 0x10e): 
PRINT_AREA
  <1><14a>: Abbrev Number: 11 (DW_TAG_pointer_type)
     <14b>   DW_AT_type        : <0xe2>
     <14f>   DW_AT_associated  : 5 byte block: 97 6 10 0 2e 
(DW_OP_push_object_address; DW_OP_deref; DW_OP_constu: 0; DW_OP_ne)
  <1><155>: Abbrev Number: 12 (DW_TAG_subroutine_type)
     <156>   DW_AT_decl_line   : 8
     <157>   DW_AT_decl_file   : 1
     <158>   DW_AT_name        : (indirect string, offset: 0x114): AREA
     <15c>   DW_AT_type        : <0x126>
  <1><160>: Abbrev Number: 13 (DW_TAG_subroutine_type)
     <161>   DW_AT_decl_line   : 9
     <162>   DW_AT_decl_file   : 1
     <163>   DW_AT_name        : (indirect string, offset: 0x10e): 
PRINT_AREA
  <1><167>: Abbrev Number: 14 (DW_TAG_subprogram)
     <168>   DW_AT_decl_line   : 27
     <169>   DW_AT_decl_file   : 1
     <16a>   DW_AT_name        : (indirect string, offset: 0x129): 
square_test
     <16e>   DW_AT_calling_convention: 2	(program)
     <16f>   DW_AT_low_pc      : 0x40274a
     <177>   DW_AT_high_pc     : 0x402842
     <17f>   DW_AT_external    : 1
  <2><180>: Abbrev Number: 8 (DW_TAG_variable)
     <181>   DW_AT_decl_line   : 31
     <182>   DW_AT_decl_file   : 1
     <183>   DW_AT_name        : (indirect string, offset: 0x135): asquare
     <187>   DW_AT_type        : <0x195>
     <18b>   DW_AT_location    : 9 byte block: 3 b0 33 6b 0 0 0 0 0 
(DW_OP_addr: 6b33b0)
  <2><195>: Abbrev Number: 6 (DW_TAG_structure_type)
     <196>   DW_AT_decl_line   : 0
     <197>   DW_AT_decl_file   : 1
     <198>   DW_AT_byte_size   : 4
     <199>   DW_AT_name        : (indirect string, offset: 0xdf): square
  <3><19d>: Abbrev Number: 7 (DW_TAG_member)
     <19e>   DW_AT_decl_line   : 0
     <19f>   DW_AT_decl_file   : 1
     <1a0>   DW_AT_data_member_location: 2 byte block: 23 0 
(DW_OP_plus_uconst: 0)
     <1a3>   DW_AT_name        : (indirect string, offset: 0x107): height
     <1a7>   DW_AT_type        : <0x126>
  <3><1ab>: Abbrev Number: 7 (DW_TAG_member)
     <1ac>   DW_AT_decl_line   : 0
     <1ad>   DW_AT_decl_file   : 1
     <1ae>   DW_AT_data_member_location: 2 byte block: 23 0 
(DW_OP_plus_uconst: 0)
     <1b1>   DW_AT_name        : (indirect string, offset: 0x102): area
     <1b5>   DW_AT_type        : <0x1c9>
  <3><1b9>: Abbrev Number: 7 (DW_TAG_member)
     <1ba>   DW_AT_decl_line   : 0
     <1bb>   DW_AT_decl_file   : 1
     <1bc>   DW_AT_data_member_location: 2 byte block: 23 0 
(DW_OP_plus_uconst: 0)
     <1bf>   DW_AT_name        : (indirect string, offset: 0x119): 
print_area
     <1c3>   DW_AT_type        : <0x1d4>
  <3><1c7>: Abbrev Number: 0
  <2><1c8>: Abbrev Number: 0
  <1><1c9>: Abbrev Number: 12 (DW_TAG_subroutine_type)
     <1ca>   DW_AT_decl_line   : 27
     <1cb>   DW_AT_decl_file   : 1
     <1cc>   DW_AT_name        : (indirect string, offset: 0x114): AREA
     <1d0>   DW_AT_type        : <0x126>
  <1><1d4>: Abbrev Number: 13 (DW_TAG_subroutine_type)
     <1d5>   DW_AT_decl_line   : 27
     <1d6>   DW_AT_decl_file   : 1
     <1d7>   DW_AT_name        : (indirect string, offset: 0x10e): 
PRINT_AREA
  <1><1db>: Abbrev Number: 0



You can see that in the declaration in the module and in the declaration 
in the program itself there is also the functions as members.

Thus the result of the print of asquare is today:

(gdb) print asquare
$1 = ( 0, {REAL(4) ()} 0x6716253 <square_test_$ASQUARE>, {void ()} 
0x6716253 <square_test_$ASQUARE> )

In this sense I suppose you would like to see that as a test added to 
the fortran testsuite, right?

With that would it be ok to commit, of course after review of the test? :)


Thanks and regards,
-Fred



Intel Deutschland GmbH
Registered Address: Am Campeon 10-12, 85579 Neubiberg, Germany
Tel: +49 89 99 8853-0, www.intel.de
Managing Directors: Christin Eisenschmid, Christian Lamprechter
Chairperson of the Supervisory Board: Nicole Lau
Registered Office: Munich
Commercial Register: Amtsgericht Muenchen HRB 186928

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

* Re: [PATCH V2] Improve user experience in printing Fortran derived types.
  2016-05-02 12:35       ` Walfred Tedeschi
@ 2016-05-03 16:14         ` Yao Qi
  0 siblings, 0 replies; 6+ messages in thread
From: Yao Qi @ 2016-05-03 16:14 UTC (permalink / raw)
  To: Walfred Tedeschi; +Cc: Yao Qi, Pedro Alves, gdb-patches

Walfred Tedeschi <walfred.tedeschi@intel.com> writes:

> Thus the result of the print of asquare is today:
>
> (gdb) print asquare
> $1 = ( 0, {REAL(4) ()} 0x6716253 <square_test_$ASQUARE>, {void ()}
> 0x6716253 <square_test_$ASQUARE> )
>
> In this sense I suppose you would like to see that as a test added to
> the fortran testsuite, right?

Yes, you are right.

>
> With that would it be ok to commit, of course after review of the test? :)

Please post the patch with the test, and I'll take a look.  All of my
questions have been answered in the discussions.

-- 
Yao (齐尧)

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

end of thread, other threads:[~2016-05-03 16:14 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-03-18 10:26 [PATCH V2] Improve user experience in printing Fortran derived types Walfred Tedeschi
2016-04-05 11:47 ` Yao Qi
2016-04-05 12:17   ` Walfred Tedeschi
2016-04-05 12:39     ` Yao Qi
2016-05-02 12:35       ` Walfred Tedeschi
2016-05-03 16:14         ` Yao Qi

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).