From patchwork Wed Oct 4 10:50:34 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Sandiford X-Patchwork-Id: 114767 Delivered-To: patch@linaro.org Received: by 10.80.163.150 with SMTP id s22csp5811169edb; Wed, 4 Oct 2017 03:50:56 -0700 (PDT) X-Received: by 10.99.156.1 with SMTP id f1mr16123426pge.364.1507114256347; Wed, 04 Oct 2017 03:50:56 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1507114256; cv=none; d=google.com; s=arc-20160816; b=akWylllA/mXHV2diw8VV1ci2mxTs5gZi4gdIRbOGnio8L2i596n1L04EesoonekVcx 0TvgxecPrTEWFZ2A2J1dtSEERM3yLB0KawX57WqXfOoNnmxltToL+/rkks1lft0OiWnv dBnP9pGP0VsaV3WiHa++EqT/IBBY24s/kG4HoAuESoPvTee5hK2IbTpNvZ+lekQAwO6w KXq453jzEmtm9xrMevXRH0rNltWhA3IGBazxFyHOsjfCMmAFOq4KP+WDxUDrAEk0LZZh r5oSHIhjh0zISnHSNcFh0u+HwgDAP+tT2AtmhzIOwUiFPI684T/ztOYi4iSwrV8fvwzT aWrA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=mime-version:user-agent:message-id:date:subject:mail-followup-to:to :from:delivered-to:sender:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:mailing-list:dkim-signature :domainkey-signature:arc-authentication-results; bh=q8Dg6/J3JzHa8CqJEFZV0G4yyfr2gWlDD6XoqtzGUxQ=; b=G9X/d5azI5fUYLrDc/S/Mz8YYiir7e9jzITpHFmomVgZKLcUY/Rga0tqC0sFaL/xuh JlKXsImRsUGGdaJ9TJwMyEJw5/+WZswOrLghoB61OKuD4OckuECVPxf6RYLVssLo6/87 0eb/B5Rr8rpT3xiQLhxkrC4m2ZYVgZsr3pgJpjIYIF/4Bt+5CFbIV1xUEIK9uswoNJnd bqkrFDcsrxml044T/fzNCoPPWgKmoU9ndAmYX+ULyW83+N9f3Gmy8TCDuEFEGqiqMaJB WQYGhHDAsBXlpDmmG0v7AZdpMVCHdtGXMwtwL2RfCDuLwz8WcxHwSg5NK17BMbr5y1O8 Nrsg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gcc.gnu.org header.s=default header.b=wg8Tl/rH; spf=pass (google.com: domain of gcc-patches-return-463444-patch=linaro.org@gcc.gnu.org designates 209.132.180.131 as permitted sender) smtp.mailfrom=gcc-patches-return-463444-patch=linaro.org@gcc.gnu.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from sourceware.org (server1.sourceware.org. [209.132.180.131]) by mx.google.com with ESMTPS id d86si3170750pfb.370.2017.10.04.03.50.55 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 04 Oct 2017 03:50:56 -0700 (PDT) Received-SPF: pass (google.com: domain of gcc-patches-return-463444-patch=linaro.org@gcc.gnu.org designates 209.132.180.131 as permitted sender) client-ip=209.132.180.131; Authentication-Results: mx.google.com; dkim=pass header.i=@gcc.gnu.org header.s=default header.b=wg8Tl/rH; spf=pass (google.com: domain of gcc-patches-return-463444-patch=linaro.org@gcc.gnu.org designates 209.132.180.131 as permitted sender) smtp.mailfrom=gcc-patches-return-463444-patch=linaro.org@gcc.gnu.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:from :to:subject:date:message-id:mime-version:content-type; q=dns; s= default; b=Jl2jqmL921wKDNNw7x0/lhM2yr7U6TfZLf+Q04kMrUmXhN+wPgGnz ZO7fVYvpanHMk8b1lZHz2Q/OQANHEyvGV2MzCt1ReXCWikkyXlXlxrbbQK7q9OxV 8CpmCb8rWJ/6WBR92kv5r6qEjc6Jp5mTXTG/rKLrUy2adPkTwy6tGY= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:from :to:subject:date:message-id:mime-version:content-type; s= default; bh=SPNLDzUGbkBkrzaWzxh545gjRTw=; b=wg8Tl/rHwQ2YE09sq7+o Ql3r76FDAwlCu3fpYpKH2RZHkM4Tmg0QpYUuAY87ySoI9Yo+4U1RgbqRpf0jEzZM nemh0zMD9CpOdaIZt/+e3dVkRTRZurtiehL/gD3gWuCo+nY2LcB6MIANJQqi5jUR U1czqQOqj1KO9y9Yg9LSCkI= Received: (qmail 55781 invoked by alias); 4 Oct 2017 10:50:42 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org Received: (qmail 55750 invoked by uid 89); 4 Oct 2017 10:50:41 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-10.6 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_2, GIT_PATCH_3, KAM_ASCII_DIVIDERS, RCVD_IN_DNSWL_NONE, RCVD_IN_SORBS_SPAM, SPF_PASS autolearn=ham version=3.3.2 spammy=LOW, H*r:threembb.co.uk X-HELO: mail-wm0-f46.google.com Received: from mail-wm0-f46.google.com (HELO mail-wm0-f46.google.com) (74.125.82.46) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 04 Oct 2017 10:50:40 +0000 Received: by mail-wm0-f46.google.com with SMTP id 196so8999392wma.1 for ; Wed, 04 Oct 2017 03:50:39 -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:mail-followup-to:subject:date:message-id :user-agent:mime-version; bh=q8Dg6/J3JzHa8CqJEFZV0G4yyfr2gWlDD6XoqtzGUxQ=; b=kxYZ3Dh3R4q1hFcS5rNtzdRxOkr9tlHAkYpJ4WRGdOBfkdvvK+RndJhB54MvYmQXIg 7VgBTepfw+TSGfEbj/bv0sB+u/qhkRzPwBuw2mkBeu/AnIJ0cE6F5U9QnIvi5JQd8/eF mX+DWzD4KgqLL82r9Fb50g5rHYyqWZ8LLX17CpL4dRJt8kAJbi/a7dNGKbe1mk6J73Hd /IlZzGtDVPYR8RgRFvNyTQ6gMFzrDcZsD09Nr2oPa/0XRoIfo2U/44EBic8qf24SpELz BJUx8s5HGt0ukAbilakOF1Pv1TeO8+7o7+QlBJNLo6woV1kEtodARBosvI9JOvVPh34d aP3A== X-Gm-Message-State: AMCzsaX1MBmoXRQDFYV5OGfUw4W0iSuJpmGewR+ynsoFDCAcO1U76IUo W2WIrArpu922XCAbdDPpms9ene3+J10= X-Google-Smtp-Source: AOwi7QDUSS8osukklAK5vAafoKEIW1n42CerjQQSXh8K5xu6pNUF0PQjw3pS9vpPq1F/c0rtwt6gfA== X-Received: by 10.28.11.195 with SMTP id 186mr14637588wml.41.1507114237959; Wed, 04 Oct 2017 03:50:37 -0700 (PDT) Received: from localhost (94.197.120.146.threembb.co.uk. [94.197.120.146]) by smtp.gmail.com with ESMTPSA id x7sm4697026wrd.7.2017.10.04.03.50.36 for (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 04 Oct 2017 03:50:37 -0700 (PDT) From: Richard Sandiford To: gcc-patches@gcc.gnu.org Mail-Followup-To: gcc-patches@gcc.gnu.org, richard.sandiford@linaro.org Subject: [committed] PR82413: Mismatched precisions in build_range_check Date: Wed, 04 Oct 2017 11:50:34 +0100 Message-ID: <87lgkrtced.fsf@linaro.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux) MIME-Version: 1.0 build_range_check explicitly allows LOW and HIGH to be a different type from EXP, so we need to use w::to_widest when comparing a value based on HIGH with a value based on EXP's type. Tested on powerpc64le-linux-gnu and installed as obvious. Richard 2017-10-04 Richard Sandiford gcc/ PR tree-optimization/82413 * fold-const.c (build_range_check): Use widest_int when comparing the maximum ETYPE value with HIGH. gcc/testsuite/ PR tree-optimization/82413 * g++.dg/pr82413.C: New test. Index: gcc/fold-const.c =================================================================== --- gcc/fold-const.c 2017-10-04 11:43:11.653350269 +0100 +++ gcc/fold-const.c 2017-10-04 11:43:49.030813918 +0100 @@ -4851,7 +4851,7 @@ build_range_check (location_t loc, tree { int prec = TYPE_PRECISION (etype); - if (wi::mask (prec - 1, false, prec) == high) + if (wi::mask (prec - 1, false) == wi::to_widest (high)) { if (TYPE_UNSIGNED (etype)) { Index: gcc/testsuite/g++.dg/pr82413.C =================================================================== --- /dev/null 2017-10-04 10:21:58.939451407 +0100 +++ gcc/testsuite/g++.dg/pr82413.C 2017-10-04 11:43:49.030813918 +0100 @@ -0,0 +1,3 @@ +bool a; +int b; +void c() { b &&a <= 0; }