From patchwork Fri Apr 21 10:26:15 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 86240 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp963074vqo; Fri, 21 Apr 2023 03:26:28 -0700 (PDT) X-Google-Smtp-Source: AKy350Z+8HZspFrasrySOzOqVJ8KhALjjL55xIKtoFhqLO4Gdb5lzS7sYdvk5fBh7Hd53pV7ZzMt X-Received: by 2002:a17:906:15c:b0:953:42bf:9917 with SMTP id 28-20020a170906015c00b0095342bf9917mr1678562ejh.70.1682072788635; Fri, 21 Apr 2023 03:26:28 -0700 (PDT) Received: from sourceware.org (ip-8-43-85-97.sourceware.org. [8.43.85.97]) by mx.google.com with ESMTPS id gt7-20020a1709072d8700b0094f712dac52si4206087ejc.494.2023.04.21.03.26.28 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 21 Apr 2023 03:26:28 -0700 (PDT) Received-SPF: pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) client-ip=8.43.85.97; Authentication-Results: mx.google.com; dkim=pass header.i=@sourceware.org header.s=default header.b="H/3OCLKQ"; arc=fail (signature failed); spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 92791385842D for ; Fri, 21 Apr 2023 10:26:27 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 92791385842D DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1682072787; bh=yBVPpJ2kCvQULxYdnRNpBFhTIllMHQT8mN1QSRJFFCs=; h=Date:To:Subject:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:From; b=H/3OCLKQ8qf60Ae7qbRLfWU83v33yhtZ/z8GWUjYw9FZg4pueVZqDla1eEilHI2MW Kw1P2P93egk51oxTJeK4BjRhxB/kQfih6IvFrbIyyAZxZPmT6xLGtm1WTUEu2K5AiQ wKhYAx6F89tM9luvYDCXXzw6z9q1cKrpxCYGF8IU= X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on2082.outbound.protection.outlook.com [40.107.22.82]) by sourceware.org (Postfix) with ESMTPS id 13A2A3858D37 for ; Fri, 21 Apr 2023 10:26:19 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 13A2A3858D37 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=UHVBd00tcaRAUC5lxXyaTW0SD5pyOo/M/Q5/qe6Kjfzs/JLtzUdMLeovbUBSqTQBMwqBl4FPSHIdmJE2XgEeCsDmc590ys3+f8jcIyjJ57glcTb9wc0RHWORpDz5+qXD20aVH4OmnWHvuTtzfSYv/kDMglP7hIQsXCzcrBiE83m2r9i9oI8qY0fG3ICCvZGfRov3sWxEa5QMddogFKOwy0s6VKbmSxIz1TRybezn4Om0/TPDDObKgzJBSxOiVDcDl/+AyMmu3XXq0QYpV8n8zDFzwHTe+xn98H9yYvsE6vrEps6AyuERgAM7eJFOrGyhNaBuAePMbS+izT501dbbtw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=yBVPpJ2kCvQULxYdnRNpBFhTIllMHQT8mN1QSRJFFCs=; b=fQx4u2SqETEgEmvXbhvLfQFDx9Q9jNLeJmG8NY4025GgVqU9tY/kMm/GAWKE9wbhQLAcFitMCITu3dISN68Axo/Wzd+MDHN03+lNF+C4IhkU/CvKZOeePZaTfLWBG5OPczZNy+YjtgH47MDiyp4xHnMAHl/VrEREb+LTP4vf7s6pK6937sqQYgTDeuICQCzv7UtcfnP9r0jawybMBdGkbZiafFtqUeSXoXq7gIfQVA1Kb7VZXXw8sdASxiF45NQaKTT9oJsdv80+WzYJilqYrFhMJ73EmG/+KHvcszTWQJxFRufTWCIbXsppQOOOU//HkykPCVWH+Ehw1qjKcSP2ug== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none Received: from VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) by AM9PR04MB8241.eurprd04.prod.outlook.com (2603:10a6:20b:3e4::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6319.21; Fri, 21 Apr 2023 10:26:17 +0000 Received: from VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::52b2:f58:e19:56ae]) by VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::52b2:f58:e19:56ae%2]) with mapi id 15.20.6319.022; Fri, 21 Apr 2023 10:26:17 +0000 Message-ID: <335d1933-a5dc-9183-cbe7-d8b139e232fc@suse.com> Date: Fri, 21 Apr 2023 12:26:15 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.10.0 Content-Language: en-US To: Binutils Subject: [PATCH] gas: move shift count check X-ClientProxiedBy: FR3P281CA0110.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:a3::7) To VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VE1PR04MB6560:EE_|AM9PR04MB8241:EE_ X-MS-Office365-Filtering-Correlation-Id: 72933b78-80e4-4802-1634-08db4252d73a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: zn11o7FnDCZiHLEwjcbC3wSh5Ykqtq20lBFqEIG45AOBt5jBIdL/xXhWlKfO4Ic7R//3IPn4AUMqfSlSYRVXKkFFcq8uEsVbBXaIOaF04rDvpJcUElV2+Kj8q0SDfzSP2S4hO0avTgRosUQ/VxzKo2i20j92hsAAdY/P9ExfCyRyc6GiSzOPdAc6C5j0fkaJlelA9bSnRpPmirVogAD2ypMEJBZ8W+78CVaM/g5/nwtSGI2VUzIQM6ZrUTij/EmtBELMXbGyS2L/YfIoNd3lJtbA2pLHtZRS3x8Afcx7ybBZyL47ctVEmC82hXbXkkRzAvv5glONn+a6ujpC9SuG5tKISEvYk6dGM0TK5IXeveSskG3ZKnTzn5ENaxZBGzo+lRpEe8p/jp8phi5GJW5JeGipD6MoRpi5l2JfXh8GmP+bBou1SRAuNWmCrpLzsyjnOqp1IsKdrpdz/eNywiEo/Y84vv0cXMG2C6TYwD+IsEQtAsUTkR2SXUclVyO1IqVHl4hp40sv9Tc041lz5Ia1APz1L4pLYJKb3KTI9PptMA18/W/xfh/NC60F/WKBQw6wuJ+VgyvL4e80l2BDnmQGsm7thTr4nARXhX3Ys0qXCQ+0jodYF/HdcXwHsN9t5IOx5QkCywAicIGjtXcojRFW7A== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:VE1PR04MB6560.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230028)(346002)(396003)(136003)(376002)(39860400002)(366004)(451199021)(66556008)(6916009)(66476007)(478600001)(66946007)(316002)(8936002)(8676002)(5660300002)(41300700001)(38100700002)(186003)(83380400001)(2616005)(6486002)(6506007)(6512007)(26005)(36756003)(86362001)(2906002)(31696002)(31686004)(45980500001)(43740500002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?IonQJDahaR+N7z1GBXzcU4RPSh7Q?= =?utf-8?q?Z8xnR9u/h7Lk38nos9x9fBEDonA3ryTrGdnEZ3mC40R6Fu2aIIimE+dfUFejZg8Jc?= =?utf-8?q?oqo6wRFJ2dUneykfZ0WLzC/lMycXThSSjcGd9tYy7kfDmadLKPX4AQFzLwbZsDKQD?= =?utf-8?q?FRh6lzJ+f+MCY/xfJ9JPrTgBchyDnqwQ1HUMRG4BQM1jRpQUbCOJC8/CMCgRz42qf?= =?utf-8?q?V0LPWdjpauaLu0prls5fXyTfw5dWp6BPiX+W8JyMqy0rH2EFm5TZSgJC/DlLe2OC4?= =?utf-8?q?6L3Ng26xSyfj9oiXKvbjJZe4bJbkfo879HdsimnsFAy0J0Zdr2XD6BLeFQgWtjAct?= =?utf-8?q?0+LU+URf8dsIGCrz8bYGYdw3i5H3EGF6c7XHGgi2LNw+FLm0WIya2ZR9MYmg8RpmV?= =?utf-8?q?rG9/Oh02+jekDd6qSAQ0z+xtZgmG3bgUlSx2zGMD++ael1DbLv3aTnjy4RjF4njsp?= =?utf-8?q?xE5XZrkFQg4Bc1kvWkJQj2Cgn9L6zNr2D1LCV9IIjrVKP2/NQnkqYBYa/4gZJu1MR?= =?utf-8?q?CsTT7TBHEz1wNzvhhij3baLUNKA6x/NCcnQbczt+i37kpvwnyByX+tfVnqQcYxoD4?= =?utf-8?q?Z4XNC49p1S18gS4OxZ3+AwLkY6shUHjfIk0JvqFoFwc0TrGZs0T/a9S6BGiIx+knu?= =?utf-8?q?f6W7xKxz8JMBut8TYkzDaE+g1Mrt5xtRWjkkNtkkc3HY0uKAOyNUATzBVTUgOLvxc?= =?utf-8?q?TFHFeMu0Ie9AR+DIxfp+SommuLZabkA/bdl3C0oySHCFexnpeTKK3/RoeJpbyzdBn?= =?utf-8?q?Uk99u2aFSEyaPno+tr5OyzRjfnjgJkDNvFFsOLQiOlw9SkyU0TO1+s8mYKkd3dZsx?= =?utf-8?q?9vbptmk8ZyKorQ+YuDVMeqDEi2efXSw0LufBkKBLPMN2ou3c1m61ShgCfWGjv3yto?= =?utf-8?q?jHfO5VFncsk8ttxHnVByBe7oVsWXu/z8XssD0jLjTFAIHRdw2MpcWuNAFVkWKrurY?= =?utf-8?q?20Cb3C7o9xPra/QDNsqS4+xmiu/t9IRz34kpw1gRDxTlQBgTKtfiMl3OfLtKSFjIG?= =?utf-8?q?NVkH7vyDOtkgP41+pG7X+j34FBLXOVmJj/YkgV0/X8O4BJ1yl+ohmT75hM51QmLnf?= =?utf-8?q?/D+n3VdWyEhmmvXaBqmzMAJBk+5yumwoxmp+j/iaRGALllFD+PF4/x2JXFREbz0xU?= =?utf-8?q?0b0Ki0Jowk7hx9NO60W0ivnbOUUUoGIiZycXwGY3bLskVL1nPJT5o8nZOn+1hoWcl?= =?utf-8?q?uej4ugBhu/X8benYMoIyq79flZ7CqG8yfVDBlFq8AnMNlasEUmg7I91pcs1k3ODGp?= =?utf-8?q?vmVZxvIZSFDAysqYGQrgPgWWwoJf/lqSE9N6dakgWZ+oalUtfr+kLZzaaNy+4dolc?= =?utf-8?q?CUBch2s+h6TbuFAK6rHeeDwBZGWtt7zCQvLzZpSWAWTnWwuMaDnUoa40zgqzGghgv?= =?utf-8?q?tUEJD/UA5iKkP6jQqwzaJUev7TV6ypw8zF4Mof3ZNHgB0lqTzvZBh0IoP5wJOM/hQ?= =?utf-8?q?DWazXp22Lj81/feBpcpd+acBxunf39bT9dQuVi7m3Xbg/CHNInzlvslK4WGW0DNzt?= =?utf-8?q?SHfTIMYUJj2E?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 72933b78-80e4-4802-1634-08db4252d73a X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Apr 2023 10:26:17.0338 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Na3/y3CLhK0BSH+Vpn9IQYLa6B7btfst9rz1oDTJfYV+o0xBtKSkeY9wWc/ytUGnr1b1GFkc9alBzH2bESWdWw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB8241 X-Spam-Status: No, score=-3028.0 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: binutils@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Jan Beulich via Binutils From: Jan Beulich Reply-To: Jan Beulich Errors-To: binutils-bounces+ouuuleilei=gmail.com@sourceware.org Sender: "Binutils" X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1763781156452033744?= X-GMAIL-MSGID: =?utf-8?q?1763781156452033744?= ... out of mainline code, grouping together the two case labels. This then also make more obvious that the comment there applies to both forms of shifts. --- a/gas/expr.c +++ b/gas/expr.c @@ -1954,14 +1954,6 @@ expr (int rankarg, /* Larger # is highe as_warn (_("division by zero")); v = 1; } - if ((valueT) v >= sizeof(valueT) * CHAR_BIT - && (op_left == O_left_shift || op_left == O_right_shift)) - { - as_warn_value_out_of_range (_("shift count"), v, 0, - sizeof(valueT) * CHAR_BIT - 1, - NULL, 0); - resultP->X_add_number = v = 0; - } switch (op_left) { default: goto general; @@ -1974,6 +1966,7 @@ expr (int rankarg, /* Larger # is highe case O_divide: resultP->X_add_number /= v; break; case O_modulus: resultP->X_add_number %= v; break; case O_left_shift: + case O_right_shift: /* We always use unsigned shifts. According to the ISO C standard, left shift of a signed type having a negative value is undefined behaviour, and right @@ -1982,12 +1975,19 @@ expr (int rankarg, /* Larger # is highe when the result overflows is also undefined behaviour. So don't trigger ubsan warnings or rely on characteristics of the compiler. */ - resultP->X_add_number - = (valueT) resultP->X_add_number << (valueT) v; - break; - case O_right_shift: - resultP->X_add_number - = (valueT) resultP->X_add_number >> (valueT) v; + if ((valueT) v >= sizeof (valueT) * CHAR_BIT) + { + as_warn_value_out_of_range (_("shift count"), v, 0, + sizeof (valueT) * CHAR_BIT - 1, + NULL, 0); + resultP->X_add_number = 0; + } + else if (op_left == O_left_shift) + resultP->X_add_number + = (valueT) resultP->X_add_number << (valueT) v; + else + resultP->X_add_number + = (valueT) resultP->X_add_number >> (valueT) v; break; case O_bit_inclusive_or: resultP->X_add_number |= v; break; case O_bit_or_not: resultP->X_add_number |= ~v; break;