From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 114419 invoked by alias); 16 Nov 2018 22:33:40 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 109557 invoked by uid 89); 16 Nov 2018 22:33:13 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-25.3 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,RCVD_IN_DNSWL_NONE,SPF_HELO_PASS autolearn=ham version=3.3.2 spammy= X-HELO: gateway32.websitewelcome.com Received: from gateway32.websitewelcome.com (HELO gateway32.websitewelcome.com) (192.185.145.108) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 16 Nov 2018 22:33:12 +0000 Received: from cm12.websitewelcome.com (cm12.websitewelcome.com [100.42.49.8]) by gateway32.websitewelcome.com (Postfix) with ESMTP id 8003BE483F1 for ; Fri, 16 Nov 2018 16:33:10 -0600 (CST) Received: from box5379.bluehost.com ([162.241.216.53]) by cmsmtp with SMTP id Nmfmg7l9nSjJANmfmgXQ23; Fri, 16 Nov 2018 16:33:10 -0600 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=tromey.com; s=default; h=Message-Id:Date:Subject:Cc:To:From:Sender:Reply-To:MIME-Version :Content-Type:Content-Transfer-Encoding:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: In-Reply-To:References:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=WUgpCd+rMrI8wznepB0ySU0IC0k5AoT0HbKtIvlitmw=; b=us0GwW3cjQlT/wj1IWaN8p2LQK oYZz8zknhW9uHdeg3yZeW84X6Y3WRQRoedK/eIvkK7jnwpDYbej7K4fKvAbVVBUe/qgnAAiiW6XoO zqbibDdy6j3YtD9LECttgn81E; Received: from 97-122-190-66.hlrn.qwest.net ([97.122.190.66]:36032 helo=pokyo.Home) by box5379.bluehost.com with esmtpsa (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.91) (envelope-from ) id 1gNmfm-0029LK-1v; Fri, 16 Nov 2018 16:33:10 -0600 From: Tom Tromey To: gdb-patches@sourceware.org Cc: Tom Tromey Subject: [FYI] Handle TYPE_CODE_PTR when printing Rust types Date: Fri, 16 Nov 2018 22:33:00 -0000 Message-Id: <20181116223305.12130-1-tom@tromey.com> X-SW-Source: 2018-11/txt/msg00260.txt.bz2 This changes the Rust type printers to handle TYPE_CODE_PTR. The current approach is not ideal, because currently the code can't distinguish between mut and const, or between pointers and references. (These are debuginfo deficiencies, for which there are rustc bugs on file.) Meanwhile, this at least clears up the case seen in PR rust/23625. Tested on x86-64 Fedora 28 using the current Rust stable compiler. gdb/ChangeLog 2018-11-16 Tom Tromey PR rust/23625: * rust-lang.c (rust_internal_print_type): Handle TYPE_CODE_PTR. gdb/testsuite/ChangeLog 2018-11-16 Tom Tromey PR rust/23625: * gdb.rust/simple.exp: Add ptype test. --- gdb/ChangeLog | 5 +++++ gdb/rust-lang.c | 14 ++++++++++++++ gdb/testsuite/ChangeLog | 5 +++++ gdb/testsuite/gdb.rust/simple.exp | 1 + 4 files changed, 25 insertions(+) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 4995d551979..ed5123d6b22 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2018-11-16 Tom Tromey + + PR rust/23625: + * rust-lang.c (rust_internal_print_type): Handle TYPE_CODE_PTR. + 2018-11-16 Alan Hayward PR gdb/22736: diff --git a/gdb/rust-lang.c b/gdb/rust-lang.c index 152413a612f..12a9c0b4895 100644 --- a/gdb/rust-lang.c +++ b/gdb/rust-lang.c @@ -918,6 +918,20 @@ rust_internal_print_type (struct type *type, const char *varstring, } break; + case TYPE_CODE_PTR: + { + if (TYPE_NAME (type) != nullptr) + fputs_filtered (TYPE_NAME (type), stream); + else + { + /* We currently can distinguish between pointers and + references. */ + fputs_filtered ("*mut ", stream); + type_print (TYPE_TARGET_TYPE (type), "", stream, 0); + } + } + break; + default: c_printer: c_print_type (type, varstring, stream, show, level, flags); diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index c0de6f2d6cd..4aa9bceb545 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2018-11-16 Tom Tromey + + PR rust/23625: + * gdb.rust/simple.exp: Add ptype test. + 2018-11-16 Alan Hayward PR gdb/22736: diff --git a/gdb/testsuite/gdb.rust/simple.exp b/gdb/testsuite/gdb.rust/simple.exp index 956a6ca6fee..e26435abb29 100644 --- a/gdb/testsuite/gdb.rust/simple.exp +++ b/gdb/testsuite/gdb.rust/simple.exp @@ -54,6 +54,7 @@ gdb_test "print *&c" " = 0" gdb_test "print *(&c as &i32)" " = 0" gdb_test "print *(&c as *const i32)" " = 0" gdb_test "print *(&c as *mut i32)" " = 0" +gdb_test "ptype &c as *mut i32" "\\*mut i32" gdb_test "print/c f\[0\]" " = 104 'h'" -- 2.17.2