From patchwork Tue Apr 18 22:07:11 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yao Qi X-Patchwork-Id: 20078 Received: (qmail 81058 invoked by alias); 18 Apr 2017 22:07:22 -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 80471 invoked by uid 89); 18 Apr 2017 22:07:19 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-26.4 required=5.0 tests=BAYES_00, FREEMAIL_FROM, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_NONE, RCVD_IN_SORBS_SPAM, SPF_PASS autolearn=ham version=3.3.2 spammy=type's, Suppose X-HELO: mail-wr0-f196.google.com Received: from mail-wr0-f196.google.com (HELO mail-wr0-f196.google.com) (209.85.128.196) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 18 Apr 2017 22:07:17 +0000 Received: by mail-wr0-f196.google.com with SMTP id u18so848881wrc.1 for ; Tue, 18 Apr 2017 15:07:18 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version:content-transfer-encoding; bh=PBPitkNIFmOb9vqOhp2eWzbvbAt89hiWvIbz8XtmZMc=; b=Utj5c32WrQbsALZf721B6uIjQZLbB3i6XI3FLKIR8Q4YJBVoudwp2+EQHOai8zoNyv fUQc4aouReAzLiOHQDHNxUDMCWQg8dr5Tx6nbzb3ppIquvXC/LXf1bh8WBfPtJ8OhxMZ pMCAPJ0JfRXIyPFoAPV9gDq8FVOnisIHLpUrC904oSqanAbMdhmr5o2PSK+Wk95tzRAx v5e77OrD3E/LKZlfFIU68TxOZ8FE4hrnWtHALFWwdZ987c3qjaU1NL91P9F4KJS+DKvZ uaElcjM0V/r1SWhLka/HHiSmOfD1Q+dzW8lVz7dpONht5YyI5yB2LPH8XeTQ2O6oAvNG 4E9Q== X-Gm-Message-State: AN3rC/7cekiWWkZsFgaXLhgR9ZnJe9WG45N1yOzL4aIqMMMzI4lzKFKE UvP0V9CVqmDx6Rkt X-Received: by 10.223.164.221 with SMTP id h29mr26975854wrb.102.1492553237109; Tue, 18 Apr 2017 15:07:17 -0700 (PDT) Received: from E107787-LIN ([194.214.185.158]) by smtp.gmail.com with ESMTPSA id g132sm16619254wmd.33.2017.04.18.15.07.15 (version=TLS1_2 cipher=AES128-SHA bits=128/128); Tue, 18 Apr 2017 15:07:16 -0700 (PDT) From: Yao Qi To: Simon Marchi Cc: gdb-patches@sourceware.org Subject: Re: [PATCH 5/9] Restrict m68k_convert_register_p References: <1492068373-4916-1-git-send-email-yao.qi@linaro.org> <1492068373-4916-6-git-send-email-yao.qi@linaro.org> Date: Tue, 18 Apr 2017 23:07:11 +0100 In-Reply-To: (Simon Marchi's message of "Sat, 15 Apr 2017 14:00:59 -0400") Message-ID: <86vaq1z7xs.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3 (gnu/linux) MIME-Version: 1.0 X-IsSubscribed: yes Simon Marchi writes: > Perhaps that can be replaced with a gdb_assert (TYPE_CODE (type) == > TYPE_CODE_FLT) ? Or maybe it would be more appropriate to put such > asserts on convert_typed_floating ? > > Likewise in the following patches, the if (TYPE_LENGTH (valtype) == 4) > check in alpha could be replaced with gdb_assert (TYPE_LENGTH > (valtype) == 4). The assert was in my code, but removed before I post the patches, because I am not confident putting such strong assert to the code that I am very familiar with. I am fine to add it back. convert_typed_floating calls floatformat_from_type which asserts that its type code is TYPE_CODE_FLT. diff --git a/gdb/m68k-tdep.c b/gdb/m68k-tdep.c index 7c3bf4c..8b6b568 100644 --- a/gdb/m68k-tdep.c +++ b/gdb/m68k-tdep.c @@ -188,6 +188,8 @@ m68k_convert_register_p (struct gdbarch *gdbarch, if (!gdbarch_tdep (gdbarch)->fpregs_present) return 0; return (regnum >= M68K_FP0_REGNUM && regnum <= M68K_FP0_REGNUM + 7 + /* We only support floating-point values. */ + && TYPE_CODE (type) == TYPE_CODE_FLT && type != register_type (gdbarch, M68K_FP0_REGNUM)); } @@ -203,16 +205,7 @@ m68k_register_to_value (struct frame_info *frame, int regnum, struct type *fpreg_type = register_type (get_frame_arch (frame), M68K_FP0_REGNUM); - /* We only support floating-point values. */ - if (TYPE_CODE (type) != TYPE_CODE_FLT) - { - warning (_("Cannot convert floating-point register value " - "to non-floating-point type.")); - *optimizedp = *unavailablep = 0; - return 0; - } - - /* Convert to TYPE. */ + gdb_assert (TYPE_CODE (type) == TYPE_CODE_FLT); /* Convert to TYPE. */ if (!get_frame_register_bytes (frame, regnum, 0, TYPE_LENGTH (type),