From patchwork Tue Apr 2 23:58:41 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrew Burgess X-Patchwork-Id: 32131 Received: (qmail 82562 invoked by alias); 2 Apr 2019 23:59:04 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Delivered-To: mailing list gdb-patches@sourceware.org Received: (qmail 82488 invoked by uid 89); 2 Apr 2019 23:59:03 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-25.7 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_NONE, SPF_PASS autolearn=ham version=3.3.1 spammy=REF X-HELO: mail-wm1-f48.google.com Received: from mail-wm1-f48.google.com (HELO mail-wm1-f48.google.com) (209.85.128.48) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 02 Apr 2019 23:59:01 +0000 Received: by mail-wm1-f48.google.com with SMTP id a184so5332179wma.2 for ; Tue, 02 Apr 2019 16:59:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=embecosm.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :in-reply-to:references; bh=jn9xiGRi6v7lokknjooGhMiYP4M7i1IP1cDCMyvK8q4=; b=Usx6xg8RGbTTG93FFH3FwfG6N46iAokqN6R014t19ZaWae1kXw8/Y9E8g68DgWAD/v +NIoyVDY/9RE9702hMGp07DYLzyGUmWqeAFPlXeyve/0uFJglUM6rmw65F8UpRh2KMT2 IZHLJZ6lVDZsTJp33jH8lm34Wn09iDWk6xN54yQFWiJYGAfREmoZ7A4M19IOTRjtbw+Y xmAOIt/BaRhjTOqnr/raWb2KNFi3ZXWzA0b79Mu6aQId86SC+skMSEKLbFaAyqFGmWvD oGOD2hojdue1ydNRGCxz8oLr+MPuPoVLy83i2w3P5Ykj7JXcpp1ynXKmu/l9HbtHR5J+ 2tKQ== Return-Path: Received: from localhost (host81-151-161-58.range81-151.btcentralplus.com. [81.151.161.58]) by smtp.gmail.com with ESMTPSA id v16sm22573837wru.76.2019.04.02.16.58.57 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 02 Apr 2019 16:58:57 -0700 (PDT) From: Andrew Burgess To: gdb-patches@sourceware.org Cc: Richard Bunt , Andrew Burgess Subject: [PATCHv2 7/8] gdb/fortran: Update rules for printing whitespace in types Date: Wed, 3 Apr 2019 00:58:41 +0100 Message-Id: <882177f4ac60bc22e9431f7c42977f0a6b53f9ae.1554249182.git.andrew.burgess@embecosm.com> In-Reply-To: References: In-Reply-To: References: X-IsSubscribed: yes 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. --- 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/f-typeprint.c b/gdb/f-typeprint.c index 0329e50fd0b..66a450a65c7 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/gdb.fortran/ptr-indentation.exp b/gdb/testsuite/gdb.fortran/ptr-indentation.exp index b0eb941eaa9..0c5d2255802 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 4ce78623b47..528828663c4 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 58f3395122f..6b9625ad996 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 3582d47c946..507137bed21 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" " = " "print non-allocated vla1" gdb_test "print &vla1" \ - " = \\\(PTR TO -> \\\( $real \\\(\\\)\\\)\\\) $hex" \ + " = \\\(PTR TO -> \\\( $real \\\(\\\) \\\)\\\) $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" " = " "print undefined pvla" gdb_test "print &pvla" \ - " = \\\(PTR TO -> \\\( $real \\\(\\\)\\\)\\\) $hex" \ + " = \\\(PTR TO -> \\\( $real \\\(\\\) \\\)\\\) $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)"