public inbox for gdb-cvs@sourceware.org
help / color / mirror / Atom feed
* [binutils-gdb] gdb/fortran: Update rules for printing whitespace in types
@ 2019-04-30 12:08 Andrew Burgess
  0 siblings, 0 replies; only message in thread
From: Andrew Burgess @ 2019-04-30 12:08 UTC (permalink / raw)
  To: gdb-cvs

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=f1fdc960664c24d911d6189b94e5c054b4bb9053

commit f1fdc960664c24d911d6189b94e5c054b4bb9053
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Date:   Sun Feb 17 00:37:20 2019 +0000

    gdb/fortran: Update rules for printing whitespace in types
    
    The whitespace produced as types are printed seems inconsistent.  This
    commit updates the rules in an attempt to make whitespace more
    balanced and consistent.  Expected results are updated.
    
    gdb/ChangeLog:
    
    	* f-typeprint.c (f_print_type): Update rules for printing
    	whitespace.
    	(f_type_print_varspec_suffix): Likewise.
    
    gdb/testsuite/ChangeLog:
    
    	* gdb.fortran/ptr-indentation.exp: Update expected results.
    	* gdb.fortran/ptype-on-functions.exp: Likewise.
    	* gdb.fortran/vla-ptr-info.exp: Likewise.
    	* gdb.fortran/vla-value.exp: Likewise.

Diff:
---
 gdb/ChangeLog                                    |  6 ++++++
 gdb/f-typeprint.c                                | 21 ++++++++++++++-------
 gdb/testsuite/ChangeLog                          |  7 +++++++
 gdb/testsuite/gdb.fortran/ptr-indentation.exp    |  2 +-
 gdb/testsuite/gdb.fortran/ptype-on-functions.exp |  2 +-
 gdb/testsuite/gdb.fortran/vla-ptr-info.exp       |  2 +-
 gdb/testsuite/gdb.fortran/vla-value.exp          |  8 ++++----
 7 files changed, 34 insertions(+), 14 deletions(-)

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 45ecbee..fcc784c 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,4 +1,10 @@
 2019-04-30  Andrew Burgess  <andrew.burgess@embecosm.com>
+
+	* f-typeprint.c (f_print_type): Update rules for printing
+	whitespace.
+	(f_type_print_varspec_suffix): Likewise.
+
+2019-04-30  Andrew Burgess  <andrew.burgess@embecosm.com>
 	    Chris January  <chris.january@arm.com>
 
 	* f-typeprint.c (f_type_print_varspec_suffix): Handle printing
diff --git a/gdb/f-typeprint.c b/gdb/f-typeprint.c
index 0329e50..66a450a 100644
--- a/gdb/f-typeprint.c
+++ b/gdb/f-typeprint.c
@@ -68,13 +68,20 @@ f_print_type (struct type *type, const char *varstring, struct ui_file *stream,
   f_type_print_base (type, stream, show, level);
   code = TYPE_CODE (type);
   if ((varstring != NULL && *varstring != '\0')
-  /* Need a space if going to print stars or brackets;
-     but not if we will print just a type name.  */
-      || ((show > 0 || TYPE_NAME (type) == 0)
-          && (code == TYPE_CODE_PTR || code == TYPE_CODE_FUNC
+      /* Need a space if going to print stars or brackets; but not if we
+	 will print just a type name.  */
+      || ((show > 0
+	   || TYPE_NAME (type) == 0)
+          && (code == TYPE_CODE_FUNC
 	      || code == TYPE_CODE_METHOD
 	      || code == TYPE_CODE_ARRAY
-	      || code == TYPE_CODE_REF)))
+	      || ((code == TYPE_CODE_PTR
+		   || code == TYPE_CODE_REF)
+		  && (TYPE_CODE (TYPE_TARGET_TYPE (type)) == TYPE_CODE_FUNC
+		      || (TYPE_CODE (TYPE_TARGET_TYPE (type))
+			  == TYPE_CODE_METHOD)
+		      || (TYPE_CODE (TYPE_TARGET_TYPE (type))
+			  == TYPE_CODE_ARRAY))))))
     fputs_filtered (" ", stream);
   f_type_print_varspec_prefix (type, stream, show, 0);
 
@@ -222,7 +229,7 @@ f_type_print_varspec_suffix (struct type *type, struct ui_file *stream,
     case TYPE_CODE_REF:
       f_type_print_varspec_suffix (TYPE_TARGET_TYPE (type), stream, 0, 1, 0,
 				   arrayprint_recurse_level);
-      fprintf_filtered (stream, ")");
+      fprintf_filtered (stream, " )");
       break;
 
     case TYPE_CODE_FUNC:
@@ -232,7 +239,7 @@ f_type_print_varspec_suffix (struct type *type, struct ui_file *stream,
 	f_type_print_varspec_suffix (TYPE_TARGET_TYPE (type), stream, 0,
 				     passed_a_ptr, 0, arrayprint_recurse_level);
 	if (passed_a_ptr)
-	  fprintf_filtered (stream, ")");
+	  fprintf_filtered (stream, ") ");
 	fprintf_filtered (stream, "(");
 	if (nfields == 0 && TYPE_PROTOTYPED (type))
 	  f_print_type (builtin_f_type (get_type_arch (type))->builtin_void,
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 1cfa4d3..636d36d 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,5 +1,12 @@
 2019-04-30  Andrew Burgess  <andrew.burgess@embecosm.com>
 
+	* gdb.fortran/ptr-indentation.exp: Update expected results.
+	* gdb.fortran/ptype-on-functions.exp: Likewise.
+	* gdb.fortran/vla-ptr-info.exp: Likewise.
+	* gdb.fortran/vla-value.exp: Likewise.
+
+2019-04-30  Andrew Burgess  <andrew.burgess@embecosm.com>
+
 	* gdb.fortran/ptype-on-functions.exp: New file.
 	* gdb.fortran/ptype-on-functions.f90: New file.
 
diff --git a/gdb/testsuite/gdb.fortran/ptr-indentation.exp b/gdb/testsuite/gdb.fortran/ptr-indentation.exp
index b0eb941..0c5d225 100644
--- a/gdb/testsuite/gdb.fortran/ptr-indentation.exp
+++ b/gdb/testsuite/gdb.fortran/ptr-indentation.exp
@@ -37,5 +37,5 @@ gdb_continue_to_breakpoint "BP1"
 gdb_test "ptype tinsta" \
   [multi_line "type = Type tuserdef" \
               "    $int :: i" \
-              "    PTR TO -> \\( $real :: ptr\\)" \
+              "    PTR TO -> \\( $real :: ptr \\)" \
               "End Type tuserdef"]
diff --git a/gdb/testsuite/gdb.fortran/ptype-on-functions.exp b/gdb/testsuite/gdb.fortran/ptype-on-functions.exp
index 4ce7862..5288286 100644
--- a/gdb/testsuite/gdb.fortran/ptype-on-functions.exp
+++ b/gdb/testsuite/gdb.fortran/ptype-on-functions.exp
@@ -42,4 +42,4 @@ gdb_test "ptype say_numbers" \
     "type = void \\(integer\\(kind=4\\), integer\\(kind=4\\), integer\\(kind=4\\)\\)"
 
 gdb_test "ptype fun_ptr" \
-    "type = PTR TO -> \\( integer\\(kind=4\\) \\(\\)\\(REF TO -> \\( integer\\(kind=4\\) \\)\\)\\)"
+    "type = PTR TO -> \\( integer\\(kind=4\\) \\(\\) \\(REF TO -> \\( integer\\(kind=4\\) \\)\\) \\)"
diff --git a/gdb/testsuite/gdb.fortran/vla-ptr-info.exp b/gdb/testsuite/gdb.fortran/vla-ptr-info.exp
index 58f3395..6b9625a 100644
--- a/gdb/testsuite/gdb.fortran/vla-ptr-info.exp
+++ b/gdb/testsuite/gdb.fortran/vla-ptr-info.exp
@@ -28,5 +28,5 @@ if ![runto_main] {
 # Check the status of a pointer to a dynamic array.
 gdb_breakpoint [gdb_get_line_number "pvla-associated"]
 gdb_continue_to_breakpoint "pvla-associated"
-gdb_test "print &pvla" " = \\(PTR TO -> \\( real\\(kind=4\\) \\(10,10,10\\)\\)\\) ${hex}" \
+gdb_test "print &pvla" " = \\(PTR TO -> \\( real\\(kind=4\\) \\(10,10,10\\) \\)\\) ${hex}" \
   "print pvla pointer information"
diff --git a/gdb/testsuite/gdb.fortran/vla-value.exp b/gdb/testsuite/gdb.fortran/vla-value.exp
index 3582d47..507137b 100644
--- a/gdb/testsuite/gdb.fortran/vla-value.exp
+++ b/gdb/testsuite/gdb.fortran/vla-value.exp
@@ -35,7 +35,7 @@ gdb_breakpoint [gdb_get_line_number "vla1-init"]
 gdb_continue_to_breakpoint "vla1-init"
 gdb_test "print vla1" " = <not allocated>" "print non-allocated vla1"
 gdb_test "print &vla1" \
-  " = \\\(PTR TO -> \\\( $real \\\(<not allocated>\\\)\\\)\\\) $hex" \
+  " = \\\(PTR TO -> \\\( $real \\\(<not allocated>\\\) \\\)\\\) $hex" \
   "print non-allocated &vla1"
 gdb_test "print vla1(1,1,1)" "no such vector element \\\(vector not allocated\\\)" \
   "print member in non-allocated vla1 (1)"
@@ -56,7 +56,7 @@ with_timeout_factor 15 {
 	"step over value assignment of vla1"
 }
 gdb_test "print &vla1" \
-  " = \\\(PTR TO -> \\\( $real \\\(10,10,10\\\)\\\)\\\) $hex" \
+  " = \\\(PTR TO -> \\\( $real \\\(10,10,10\\\) \\\)\\\) $hex" \
   "print allocated &vla1"
 gdb_test "print vla1(3, 6, 9)" " = 1311" "print allocated vla1(3,6,9)"
 gdb_test "print vla1(1, 3, 8)" " = 1311" "print allocated vla1(1,3,8)"
@@ -76,7 +76,7 @@ gdb_test "print vla1(9, 9, 9)" " = 999" \
 # Try to access values in undefined pointer to VLA (dangling)
 gdb_test "print pvla" " = <not associated>" "print undefined pvla"
 gdb_test "print &pvla" \
-  " = \\\(PTR TO -> \\\( $real \\\(<not associated>\\\)\\\)\\\) $hex" \
+  " = \\\(PTR TO -> \\\( $real \\\(<not associated>\\\) \\\)\\\) $hex" \
   "print non-associated &pvla"
 gdb_test "print pvla(1, 3, 8)" "no such vector element \\\(vector not associated\\\)" \
   "print undefined pvla(1,3,8)"
@@ -85,7 +85,7 @@ gdb_test "print pvla(1, 3, 8)" "no such vector element \\\(vector not associated
 gdb_breakpoint [gdb_get_line_number "pvla-associated"]
 gdb_continue_to_breakpoint "pvla-associated"
 gdb_test "print &pvla" \
-  " = \\\(PTR TO -> \\\( $real \\\(10,10,10\\\)\\\)\\\) $hex" \
+  " = \\\(PTR TO -> \\\( $real \\\(10,10,10\\\) \\\)\\\) $hex" \
   "print associated &pvla"
 gdb_test "print pvla(3, 6, 9)" " = 42" "print associated pvla(3,6,9)"
 gdb_test "print pvla(1, 3, 8)" " = 1001" "print associated pvla(1,3,8)"


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2019-04-30 12:08 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-04-30 12:08 [binutils-gdb] gdb/fortran: Update rules for printing whitespace in types Andrew Burgess

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