From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR03-VI1-obe.outbound.protection.outlook.com (mail-vi1eur03on2048.outbound.protection.outlook.com [40.107.103.48]) by sourceware.org (Postfix) with ESMTPS id 6BB683858C41 for ; Fri, 19 May 2023 13:31:01 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 6BB683858C41 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=fADR8SGsKmh/JDKkdYcNFkLUrjnwIdEnchk0KKYV3gN7yTN6yYaJA71K339sc0Hs7SOE4L+pm46tnmarJYzro9tSbkQgvZFLZH9KACKfjrv8d76SYTUfPVRbMdvDGGCZ4kG0/GKADzHq0gRR8qi+S+sQzy3Is3kyoWjIyF4gTMKlt+3HDOYjtyxORLWQA9Jryx3QT7g5g9qQG+/XST08fdN9zEUQLu8H+qZZYTd/rgP2q+KmFw4H3cmjX8jOjo9i16i9gCW8TmuY8g3IoXuqVGclWamzS1VGEc5z5kSxHP9ryOZTvF6HfxubpCTWjU/aM0rmsC8mqqRz9y6iYWMYrQ== 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=YPMgRxGfpm5Oj8dy1R8kl2w7mB6wSQBaxT0bC+uc/fY=; b=NPP/eYVOK7SjBCtE32dWyL6HY8zIZl/2iKemTjm7eKUzem/fGcRS3/J3cSq8YGtl3vWm25vzDmw55RTx3jNE3pzHCttyRJHbxBpS91xFdxpSgFg5PyPIxu7+jmvThECpY8J0s/hDHz6GRaTEGpLSvk8QG10FhaWjX/Gq5uIjds7hQwsSixcAtjjv9pmisSkggwyBSbyc69NGQLrS6ZmJOKkg1hNi00vECUD6WDr0JjOA2VTqb3/pfDOuOPnLrsjLvDMA4DpFKFi0dGPUJuo+zhJPu4Pyv/VLyT9IhixCdV3UMrNo6KaZ7SScBUSDpbhXrDXVCLDKGlR36qgYaLMy3Q== 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=YPMgRxGfpm5Oj8dy1R8kl2w7mB6wSQBaxT0bC+uc/fY=; b=s6qz9x+RRgv+JdQ51Ib0f3V+0cAfl/CUNlLYoysmpS0VKzVO1DuloXfJWa/mpNwZBO3joITZJdyEDyBo73lLv9/TNf2AbgWhifi0TXDlXtnnTtt6cJjaVytuc84WYPWoDkKOyyBE01aYWym8OmVzb0tlgDmZ/e9mCBV6oAp4KmBJLrkOHqGzypAap85ZE5nT7mDsUKy7GHv0TXNBdyJdu/llIFCnXdt4HwnTcRwmbZ4TVAS6Ke6ql1irmNIw1j2YlStTjIAB789YujvlDEGc1u1XAztZYFGVK6lh0++CbeF/ZUsQikpS2h+oP2eBkmrpuydN3+gH+ud+SH5C4QNnEw== 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 AM9PR04MB7601.eurprd04.prod.outlook.com (2603:10a6:20b:285::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6411.21; Fri, 19 May 2023 13:30:59 +0000 Received: from VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::e442:306f:7711:e24c]) by VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::e442:306f:7711:e24c%5]) with mapi id 15.20.6411.021; Fri, 19 May 2023 13:30:59 +0000 Message-ID: Date: Fri, 19 May 2023 15:30:57 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.10.1 Subject: [PATCH 1/2] x86: de-duplicate operand_special_chars[] wrt extra_symbol_chars[] Content-Language: en-US To: Binutils Cc: "H.J. Lu" References: From: Jan Beulich In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-ClientProxiedBy: FR2P281CA0056.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:93::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_|AM9PR04MB7601:EE_ X-MS-Office365-Filtering-Correlation-Id: 10eb8d0a-d688-4456-1dbc-08db586d483f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: XfLqFROkNOYnzE2WjAOZgRzOgiNBSKOSCdNZCiR6z7y4XD+bdfstA5o36SRouPFamPPh8FDn3/ADjPMwqeJ0gWWCO+bPBKkdU3lzc9XkCwNSF4bBsH++FM2wldw0azcUdMZyUDM9W3xUOzphQqasafImzsyLLsvMc705I4cYoBHJMoekzt5goNNAuSIX6LaGL+cClHEUIbHOlR7Ufp2P/8kSZdSGV8OXnUqpwbOiUfPuZDDUZNB45zweVSTtFdn5pSkL69OQgnC2bhtG9g+2brXzzYy+LILL9rnU+FPHoYtpA4ZvBY/Xkpk/I5QSDpiFFSSyzbsaUR6EF5U/v6a5gwoPb57QTlmEvL6cSCigneCCqmjaJmaQlehSWinvU8ONk2lfUsCXIv0FubKVObybaNHzP+GOiFckpcpRs7Ku0TuADVcozy0/EN4sM1J8jFYsIGwhMNrI88qNAea4WUiUwFQAepGxrCjp0ed3RfGNZw8+ffLgP78JIJPecA0aSJjYhWL+uSDfFQOandqqafSJpcJxUlkvhdfqlR/5RH5EcMBWds09WcNfC469cQGe/hYSIzgEujUEH/zk5NBLZ0Iv8fFkQjpDgJtl3BoXmPJXyJDuVmAO6Ac7VHWKfWUCSFabidiZYTRJWFULc+2kXV8R3g== 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)(376002)(136003)(396003)(39860400002)(366004)(451199021)(41300700001)(6486002)(38100700002)(6512007)(6506007)(26005)(36756003)(5660300002)(2616005)(186003)(2906002)(86362001)(31696002)(8936002)(8676002)(4326008)(6916009)(66556008)(66476007)(66946007)(478600001)(31686004)(316002)(43740500002)(45980500001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?Tmc3TFZrZ1ZGOE5MaVhpSEIyMVA5Z2xaNFFIbWxJd1RINDJYUm5CNy8xZ2xL?= =?utf-8?B?YSsxd2ttaU83QXBaOGVoSXFONkJhdVFPSDN5U3Q3SExIVEZzeWhkZ1BhbEp3?= =?utf-8?B?cWdwZGNhWjJKSzd2MmJWbzlRN2gzdmova0dHTzR6M1FPZ2pWQ3VNMFRzYmlV?= =?utf-8?B?QlVBQi9taGNvQVJxejJsVmJVT1BzdUxvYUZ3c0phZ2RUb2RhaDluU0hJYkNE?= =?utf-8?B?MmEyM0J5b09FMndrUE9NMVM3QklMb3RaS0FaczJWOEt2TFRDOHQyZlFhZzRo?= =?utf-8?B?cW9vOGhRaS9welBib1A0Q0RoM1VZK0tWeDVNclBwdElpY0ZGalhmSlliakVC?= =?utf-8?B?Rm5kNjBGeHFPUms2bllpa29xbENYVmNIaW9hb1lRMmJMSTl5SmwwZW1CZUUw?= =?utf-8?B?YkhKcklUcTYrN3lZZVRxblR5U29pUXloQWxUUkkrQ3J5UUxWYXhvaVJZMGha?= =?utf-8?B?R1FJUWFGMnM0M3VrMUFFdGRxZUU4R0N6U3Ewd0MyOUp6Z1VEVmtWVkthc2ha?= =?utf-8?B?OXp1c3RrVkwvbEs2bkpqZHVJRVgySkFYbFkrOTkrY3AwSXZUbE5SSzdyY2xU?= =?utf-8?B?V20xcENaY284UGdScnF2TEJNaEpqbUlJbEVoNWNENll3Q1ZKZlFNam53UGpm?= =?utf-8?B?cWFBbzN6V1dHaDBka05LdlFaYW1uYnhkRjRrZmtlRGNCR0xadFVBc2h5OG9B?= =?utf-8?B?SFUyVkZFc0ZmTitHaURBcnozaEptQVl6S2ZmNkoyWS90clRiNEt4d2xtS1Vp?= =?utf-8?B?U1VtR05TWEtZOFd3Z2VVTGxhNkh1aTNFSzA5ZFMwNUZXNjBFZ3B2TnBSMGxR?= =?utf-8?B?Q1NjSWhOYVhvMnpHTEpVbTRKTHl2N1hyMk5tVkMxUzBZeVBNUEZsQVAweUlD?= =?utf-8?B?L1pFeXRmZGpzTklMR2VXZHFISmdZb2tpd2t2NGF4RFFWWW1mK29xTFBjMGta?= =?utf-8?B?K04rTHZRa01BSE9MVHJSSTBCamh6RU1lMWZIQlZnMGhFYnV6WHFpMGd3bVd3?= =?utf-8?B?NndTVDlPWlVIYmRHZWxVakNvbFZMWkMva3NVZ0JRNzRWRHRpWTVJd1NlSjNN?= =?utf-8?B?NDlWYlptRC8vNFU4d2R1aFdidFFEZnh0MExNaGhxT2JlQktWV3BreGNEODhQ?= =?utf-8?B?TlMwelFxNERQc21IdnJZQ0loNmF4d0Q3RnVlanRQSEFtckU4THJnSU9kMEVH?= =?utf-8?B?UmE5MnppUitkVzFmeWFrVmNRTkZaQXN1RjV6OWJCS2pNb3R4aXZ0TjJhbitv?= =?utf-8?B?djNiMGlmUHRSMnZlMWdnYnhTNFRXN25BSm1ONHN0VVBaMjJJZHMzMldiREht?= =?utf-8?B?RVlQQnRZc1F5Q2UwRHBaTllJSm5IVU9CdTZiUlFPSVhHWnFHVlNUWm84QWFJ?= =?utf-8?B?WWU1SXNkNkM1M2ZEOUhDbmxJOHJjOUVPVWJ1b01BSWMzbytubEVCeWZVWVBL?= =?utf-8?B?eVRqSjFmN3hnSHdSdUF4SVE0R0U0UXZRZHlqbjdjN05sTzIyckZDR3lZL1VX?= =?utf-8?B?TnZQdUorNFZ6Q1Vzdk1mMHZRRHM2ZlRJU2hNbThHbUY4Ui9SKzlOOWZOMHFU?= =?utf-8?B?ZEFnRzBRZU9qb045aTM4ajF5ZXlRREN6TjVEdW9rSnBndVFpZkFTUkpZUXJV?= =?utf-8?B?cm9zTUpRRm5admtZZ0FMditsanBHdFk5MkdFYzlCWkppMjRWNUd3bUljWXJY?= =?utf-8?B?REZleVFaWEVnN3BKcFBSNkhPWVIxaWR6RkswNk1JTldaN085L1NDRDNBYlA1?= =?utf-8?B?alRoQWQzYktNdjVJNWRjNWErK3ZJbjgwQ0ZOWXlRVXlGZTVNYUdQcTBHaEhF?= =?utf-8?B?cFptLy9QWW5laVNFeU55ZFpOKysvWStmeGpzOU90UExoOGpHZkNVQUxCZS9w?= =?utf-8?B?c1BsbFhENnY1OFN4VGZaTmlQUHBBdDA5ZmFFNXR4T1V3aXIzVHBZSVNiZDNR?= =?utf-8?B?N1JVeGN1YXRBK0g2N2tIcnhEbzE1cWpjTG9CUlNCSnlNdFZtUC92RUFjeWVY?= =?utf-8?B?NUR1UjN0WnRrZnMxNEhhcnMwY1hRdlZpTDB0ZEM0eVQ5VkJXT3BCcnhGRW9J?= =?utf-8?B?K29HbU40OFphVDB1dW5FbmphNUpJVGdyTnJMcFlOeWs2MHVKMm9DZ0xuVWtR?= =?utf-8?Q?pjT/ZOJyNwFn/89w/N4uQ8tQT?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 10eb8d0a-d688-4456-1dbc-08db586d483f X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 May 2023 13:30:59.1659 (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: MA7b2OelhxycJMEdpd9p2T4kli8VIBEkM0tkyQAze6XYTAuva3kktUlsikg/vTDZIzlAIiIfVwryKWEcZBi4HA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB7601 X-Spam-Status: No, score=-3027.8 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: Having to add characters to both arrays can easily lead to oversights. Consuming extra_symbol_chars[] when populating operand_chars[] also allows to drop two special cases in md_begin(). Constify operand_special_chars[] at this occasion. --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -546,8 +546,9 @@ static char operand_chars[256]; #define is_register_char(x) (register_chars[(unsigned char) x]) #define is_space_char(x) ((x) == ' ') -/* All non-digit non-letter characters that may occur in an operand. */ -static char operand_special_chars[] = "%$-+(,)*._~/<>|&^!=:[@]"; +/* All non-digit non-letter characters that may occur in an operand and + which aren't already in extra_symbol_chars[]. */ +static const char operand_special_chars[] = "$+,)._~/<>|&^!=:@]"; /* md_assemble() always leaves the strings it's passed unaltered. To effect this we maintain a stack of saved characters that we've smashed @@ -3068,7 +3069,7 @@ md_begin (void) /* Fill in lexical tables: mnemonic_chars, operand_chars. */ { int c; - char *p; + const char *p; for (c = 0; c < 256; c++) { @@ -3085,10 +3086,7 @@ md_begin (void) operand_chars[c] = c; } else if (c == '{' || c == '}') - { - mnemonic_chars[c] = c; - operand_chars[c] = c; - } + mnemonic_chars[c] = c; #ifdef SVR4_COMMENT_CHARS else if (c == '\\' && strchr (i386_comment_chars, '/')) operand_chars[c] = c; @@ -3098,13 +3096,12 @@ md_begin (void) operand_chars[c] = c; } -#ifdef LEX_QM - operand_chars['?'] = '?'; -#endif mnemonic_chars['_'] = '_'; mnemonic_chars['-'] = '-'; mnemonic_chars['.'] = '.'; + for (p = extra_symbol_chars; *p != '\0'; p++) + operand_chars[(unsigned char) *p] = *p; for (p = operand_special_chars; *p != '\0'; p++) operand_chars[(unsigned char) *p] = *p; }