From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: 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 Authentication-Results: sourceware.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=suse.com 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=yBVPpJ2kCvQULxYdnRNpBFhTIllMHQT8mN1QSRJFFCs=; b=JzSE0tnIE+4qKUbRjkta5sxJFpfUuyBZ9d4769E/aGy2rF/0d6nkGaesN/XqdO75CIzzGifrdIVW5GncQwhKjQ+zySv9ZpAUL/cozZio1z66oc9eP1pL6X4V2ddNyfYTQC4+KKmXEQTBsKvJET0LoDICvzvG1f/i8nDAkp3+odsMHQ/unA6pveTXCAT8pSCp0ZPNGHkPmP1xcZbXbqf7+30bjHzA5CkR1dCQFn6Tl2WPwt7AdqsbOJVDZ0hTQGGz9WXmryM/Ghp5J5L6PFa17nvXEZ2GTp3TgZxWIvbnkqPMKsjv4upA+QZJxkJRFLQtLGh78vpf7gFcpgSqB6hSgQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; 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 From: Jan Beulich Subject: [PATCH] gas: move shift count check Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit 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?B?SW9uUUpEYWhhUitON3oxR0JYemNVNFJQU2g3UVo4eG5SOXUvaDdMazM4bm9z?= =?utf-8?B?OXg5ZkJFRG9uQTNyeVRyR2RuRVozbUM0MFI2RnUyYUlJaW1FK2RmVUZlalpn?= =?utf-8?B?OEpjb3FvNndSRkoyZFVuZXlrZlowV0x6Qy9sTXljWFRoU1NqY0dkOXRZeTdr?= =?utf-8?B?ZkRtYWRMS1BYNEFRRnpMd2Jac0RLUURGUmg2bHpKK2YrTUNZL3hmSjlKUHJU?= =?utf-8?B?Z0JjaHlEbnF3UTFIVU1SRzRCUU0xalJwUVViQ09KQzgvQ01DZ1J6NDJxZlYw?= =?utf-8?B?TFBXZGpwYXVhTHUwcHJsczVmWHlUZnc1ZFdwNkJQaVgrVzhKeU1xeTBySDJF?= =?utf-8?B?Rm01VFpTZ0pDL0RsTGUyT0M0NkwzTmcyNnhTeWZqOW9pWEt2YmpKWmU0Ykpi?= =?utf-8?B?a2ZvODc5SGRzaW1uc0ZBeTBKMFpkcjJYRDZCTGVGUWdXdGpBY3QwK0xVK1VS?= =?utf-8?B?Zjhkc0lHQ3J6OGJZR1lkdzNpNUgzRUdGNmM3WEhHZ2kyTE53K0ZMbTBXSXlh?= =?utf-8?B?MlpSOU1ZbWc4UnBtVnJHOS9PaDAyK2pla0RkNnFTQVEweit4dFpnbUczYmdV?= =?utf-8?B?bFN4MnpHTUQrK2FlbDFEYkx2M2FUbmp5NFJqRjRuanNweEU1WFpya0ZRZzRC?= =?utf-8?B?YzFrdldrSlFqMkNnbjlMNnpOcjJEMUxDVjlJSWpyVktQMi9OUW5rcVlCWWEv?= =?utf-8?B?NGdaSnUxTVJDc1RUN1RCSEV6MXdOenZoaGlqM2JhTFVOS0E2eC9OQ2NuUWJj?= =?utf-8?B?enQraTM3a3B2d255QnlYK3RmVm5xUWNZeG9ENFo0WE5DNDlwMVMxOGdTNE94?= =?utf-8?B?WjMrQXdMa1k2c2hVSGpmSWswSnZxRm9Gd2MwVHJHWnMwVC9hOVM2QkdpSXgr?= =?utf-8?B?a251ZjZXN3hLeHo4Sk1CdXQ4VFlrekRhRStnMU1ydDV4dFJXamtrTnRra2Mz?= =?utf-8?B?SFkwdUtBT3lOVUFUekJWVFVnT0x2eGNURkhGZU11MEllOUFSK0RJeGZwK1Nv?= =?utf-8?B?bW11TFphYmtBL2JkbDNDMG95U0hDRmV4bnBlVEtLMy9Sb2VKcGJ5emRCblVr?= =?utf-8?B?OTl1MmFGU0V5YVBubyt0cjVPeXpSamZuamdKa0ROdkZGc09MUWlPbHc5U2t5?= =?utf-8?B?VTBUTzErczhtWUtrZDNkWnN4OXZicHRtazhaeUtvclErWXVEVk1lcURFaTJl?= =?utf-8?B?ZlhTdzBMdWZCa0tCTFBNTjJvdTNjMW02MVNoZ0NmV0dqdjN5dG9qSGZPNVZG?= =?utf-8?B?bmNzazh0dHhIblZCeUJlN29Wc1dYdS96OFhzc0QwakxqVEZBSUhSZHcyTXBj?= =?utf-8?B?V3VOQUZWa1dLcnVyWTIwQ2IzQzdvOXhQcmEvUUROc3FTNCt4bWl1L3Q5SVJ6?= =?utf-8?B?MzRrcHcxZ1JEeFRsUUJnVEt0ZmlNbDNPZkx0S1NGaklHTlZrSDd2eURPdGtn?= =?utf-8?B?UDQxK3BHN1grajM0RkJMWE9WbUpqL1lrZ1YwL1g4TzRCSjF5bCtvaG1UNzVo?= =?utf-8?B?TTUxUW1MbmYvRCtuM1ZkV3lFaG1tdlhhQnFtek1BSkJrKzV5dW13b3htcCtq?= =?utf-8?B?L2lhUkdBTGxsRkQrUEY0L3gySlhGUkViejB4VTBiMEtpMEpvd2s3aHg5Tk82?= =?utf-8?B?MFcwaXZuYk9VVVVvR0lpWnljWHdHWTNiTHNrVkwxblBKVDVvOG5aT24rMWhv?= =?utf-8?B?V2NsdWVqNHVnQmh1L1g4YmVuWU1vSXlxNzlmbFo3Q3FHOHlmVkRCbEZxOEFu?= =?utf-8?B?TU5sYXNFVW1nN0k5MXBjczFrM09ER3B2bVZaeHZJWlNGREF5c3FZR1FyZ1Bn?= =?utf-8?B?V1d3b0pmL2xxU0U5TjZkYWtnV1orb2FsVXRmcitrTFp6YWFOeSs0ZG9sY0NV?= =?utf-8?B?QmNoMnMraDZUYnVGQUs2ckhlZUR3QlpHV3R0N3pDUXZMelpwU1dBV1RuV3d1?= =?utf-8?B?TWFEblVvYTQwemdxekdnaGd2dFVFSkQvVUE1aUtrUDZqUXF3emFKVWV2N1RW?= =?utf-8?B?Nnlwdzh6RjRNb2YzWk5IZ0IwbHFUenZaQmgwSW9QNXdKT00vaFFEV2F6WHAy?= =?utf-8?B?MkxqODEvZmVCcGNwZCthY0J4dW5mMzliVDlkUXVWaTdtM1hiZy9DSE5Jbnps?= =?utf-8?Q?vslK4WGW0DNztSHfTIMYUJj2E?= 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 List-Id: ... 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;