From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 2140) id 0247D384C004; Thu, 17 Sep 2020 11:31:49 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 0247D384C004 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1600342310; bh=+l4zm2uHgerz8vr9ZWz6W1Gz9RXJ0kVOBGKGiO1jCek=; h=From:To:Subject:Date:From; b=G48zqtdIlxuMLebqzLPwuwgzhQWdeuZ2VkfZWsmv5njNAhH3h0RhAfZNNlBFbNsU6 1vJws0aQOYYE/fdnPRdjfYCxZNmuN/r48ChmHtYvOvXuWeO5VQzz2Pede2ftyPFdz0 +ckPIoP2TMNx8ftKBTslmL4AnSTzxh7t9Qr1Q/YA= Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: Alexandre Oliva To: gcc-cvs@gcc.gnu.org Subject: [gcc(refs/users/aoliva/heads/testme)] adjust shiftrt bitpos for endianness X-Act-Checkin: gcc X-Git-Author: Alexandre Oliva X-Git-Refname: refs/users/aoliva/heads/testme X-Git-Oldrev: 0dc8eabc87885d6eb5b395ac2c43aafec59fdcc9 X-Git-Newrev: 4e39482a9cbd43e6e2da4035c25d573ab267e12d Message-Id: <20200917113150.0247D384C004@sourceware.org> Date: Thu, 17 Sep 2020 11:31:49 +0000 (GMT) X-BeenThere: gcc-cvs@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-cvs mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 17 Sep 2020 11:31:50 -0000 https://gcc.gnu.org/g:4e39482a9cbd43e6e2da4035c25d573ab267e12d commit 4e39482a9cbd43e6e2da4035c25d573ab267e12d Author: Alexandre Oliva Date: Thu Sep 17 08:29:24 2020 -0300 adjust shiftrt bitpos for endianness Diff: --- gcc/fold-const.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gcc/fold-const.c b/gcc/fold-const.c index c835327dac9..3f8f54a7f49 100644 --- a/gcc/fold-const.c +++ b/gcc/fold-const.c @@ -4686,7 +4686,7 @@ decode_field_reference (location_t loc, tree *exp_, HOST_WIDE_INT *pbitsize, if ((inner == exp && and_mask == 0) || !poly_bitsize.is_constant (pbitsize) || !poly_bitpos.is_constant (pbitpos) - || *pbitsize < shiftrt + || *pbitsize <= shiftrt || offset != 0 || TREE_CODE (inner) == PLACEHOLDER_EXPR /* Reject out-of-bound accesses (PR79731). */ @@ -4697,7 +4697,8 @@ decode_field_reference (location_t loc, tree *exp_, HOST_WIDE_INT *pbitsize, if (shiftrt) { - *pbitpos += shiftrt; + if (!lr_reversep ? !BYTES_BIG_ENDIAN : BYTES_BIG_ENDIAN) + *pbitpos += shiftrt; *pbitsize -= shiftrt; }