From patchwork Mon Apr 24 07:34:27 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 86885 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp2563886vqo; Mon, 24 Apr 2023 00:34:38 -0700 (PDT) X-Google-Smtp-Source: AKy350acdd8i+ViTzkDPwgedBP9trLxcr3jFe9YVuCPqic+iGwj8hsEKoPyd+wp202027oTBWLtm X-Received: by 2002:a17:906:fd57:b0:8b1:7ae8:ba6f with SMTP id wi23-20020a170906fd5700b008b17ae8ba6fmr8234329ejb.16.1682321678686; Mon, 24 Apr 2023 00:34:38 -0700 (PDT) Received: from sourceware.org (server2.sourceware.org. [2620:52:3:1:0:246e:9693:128c]) by mx.google.com with ESMTPS id h25-20020a17090619d900b0094f765f6b53si7364092ejd.600.2023.04.24.00.34.38 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 24 Apr 2023 00:34:38 -0700 (PDT) Received-SPF: pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) client-ip=2620:52:3:1:0:246e:9693:128c; Authentication-Results: mx.google.com; dkim=pass header.i=@sourceware.org header.s=default header.b=gfuh65v+; arc=fail (signature failed); spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 2620:52:3:1:0:246e:9693:128c 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 598383858C2F for ; Mon, 24 Apr 2023 07:34:37 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 598383858C2F DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1682321677; bh=K5MDzv5lJvfNReY7p920qgw0DZuhUTDOQfIeCjNxctI=; h=Date:Subject:To:Cc:References:In-Reply-To:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=gfuh65v+nssXzQwlD7AbVBgi6ZsOq162cpLJGVv3MkuzVnCdBtDsolvDZVTkd/s35 hWTLopL7MfrxxsbnXdQOQHCO7jSY68pt9fpU0d30W0iBAoZiXBd/RDktAXQuNNsszU ie6c9ewAQ/sR2AKkKOxG1fV0zW4FUX0zXC0Blyos= X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from EUR01-VE1-obe.outbound.protection.outlook.com (mail-ve1eur01on2075.outbound.protection.outlook.com [40.107.14.75]) by sourceware.org (Postfix) with ESMTPS id 6FEEC3858426 for ; Mon, 24 Apr 2023 07:34:28 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 6FEEC3858426 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=PIU4zupDZ8rfFu+USY2PeB8+2mw7qIlrpydEzzocrTPqh7jJ3RMzaXe9YM1NRrVC9xsldXWS8m+zXuywPN/TYMvzNPXDvDArH26aR4r+Eg8LKh3seHLpIM4OO1yZnFjxV3KXVyifow03xggYremu9xT6MJXQg64qP+HFQi4zDWBoco4Fq/oOBjYuBs1gLYY+htQ7xsJSXmvjXzUgcJjuuFSehohcowBvJ00i1ngJKhyjlTsB1j9UIZix+YqRs75CPOXlPW5iHbI9JQmvOnCkpRTyp7ip4rvMR0hsMKmL34DM5JTrgMmkOFhbRu3/wZmAonlTJIMc630QralZuLEVsQ== 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=K5MDzv5lJvfNReY7p920qgw0DZuhUTDOQfIeCjNxctI=; b=Z1Bky80LEdOfELhX8eDupe68lgJuBDNt8u5ZIGZnkDMIPWQv410Vrm+6KziY6XegAh02iPqwjkvVE9I/Dj0FIfIA7YvGj3TLJRXwnKXgvKmlc0EJo0NbLXRSw44Rf5lTVfdHT5eCn8LxYQHh0XftPeL1tSMmu+P9quMk4iQD1/cRbns3h/+XRsWmcvENhneagkKj61w58QcYjk+zUtY+X9DDcv9sy0hcMGgwNEabV3Q39WM4ltRYejEvfJbi8TrBYmcDPMatbfLsQZ05TtGwt42na9I/7szjbIW4PQnkQXX4S8p3f/hzCaRLcT/PnFEy5SS4iIl8xEnWIRuHL0jJhw== 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 AS8PR04MB8311.eurprd04.prod.outlook.com (2603:10a6:20b:3b3::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6319.33; Mon, 24 Apr 2023 07:34:26 +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.033; Mon, 24 Apr 2023 07:34:26 +0000 Message-ID: Date: Mon, 24 Apr 2023 09:34:27 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.10.0 Subject: [PATCH 1/3] x86: work around compiler diagnosing dangling pointer Content-Language: en-US To: Binutils Cc: "H.J. Lu" References: <61597ebf-cc5e-2029-6520-31f7adfeea68@suse.com> In-Reply-To: <61597ebf-cc5e-2029-6520-31f7adfeea68@suse.com> X-ClientProxiedBy: FR3P281CA0195.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:a4::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_|AS8PR04MB8311:EE_ X-MS-Office365-Filtering-Correlation-Id: 5ecd1a3c-2dd3-4100-a5cc-08db449654a2 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: ygzA4jgF2sYVvBhLt7Qf6PW829X8AcJtbcwKTOdtjgV7Dev9AlZRLNSySbFZph/WDUe2oJF/JLgF8D6AwhULxNnJyyVXr9wzw2d18f518B303PAsPNDIyvpMv9592N9b9HHdnQrNDAz5tLWXU1az7moSMi6r+8fzB3FOBmV0u4mxVZ60BgStREOAOjZNO/24O2vkz6LmWL1F7+B0lnA5/T+9xF2GTH8vQFkTDL+c5IAcn00zodM4ahdhv9TYmaYd7ubiK+pkLlYjs4hSctcAGZuqhJfZ6V+fUPmKV5uvThYLOxQ0Y9AYQ45ilNZXbGaP0beqO5y6G1ku1joktDI4+IjH9eEX+4Qj7mni1IEhtoTM8C+O742fZERpzEgyKNuDr5TRciOChMS60FHUH+jEjzW+srwIe1r9vslK99XSzLYr/zjgGkg3d/1eaOn/ofxoA2w1M4cdgT2hHlFwPHCrd+iKsCYQNSZ5w2F+DA4TWvL+Zf+9VqNQ8S2ORuQ+x1ZY4n9dkOs7fw6Wkh5V+tS4eQ2axC2MFe7EAVwNJfQtvA5HelYS1xUpCTgdmuGNPB8QEQ5iaLyqF7oTQgpcLC4V5hJKmBLQjD2feu81rhSotWhPAB9XZP/mlEMEjv/GimPeiRr6u5r86r//Zjb9EoCb9A== 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)(396003)(376002)(346002)(136003)(39860400002)(366004)(451199021)(2906002)(6486002)(2616005)(6512007)(6506007)(26005)(186003)(66946007)(66556008)(66476007)(8676002)(8936002)(316002)(41300700001)(6916009)(4326008)(478600001)(5660300002)(38100700002)(36756003)(86362001)(31696002)(83380400001)(31686004)(43740500002)(45980500001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?Qo5SiujFod6L0BgkPwfdQ3UDy0en?= =?utf-8?q?Nuc6PonxK16u8VtRVje0sNfazLufzwyF3OHo1FkQfH1O876VxagFFlhcVfwe1SuQV?= =?utf-8?q?govIKUlDagMXdoF3ERq62TO3VDGRAS1Q6ZX7Yvb8ktaX1TSEgDPfjnzGl24bdrp72?= =?utf-8?q?QoBK5begmOY3D4q3caaHJuMXbw3W1vZN9FwD5QuFNSUBCHc/5P421i6phev23H+Ee?= =?utf-8?q?1ibuFsZpt4V0/rLEINk6oxFiu8kd91V8Ef8jfTiL668Mn26KJbjxazKhZYg/n2WQQ?= =?utf-8?q?M1wIclRnpjXBCuofm8/8coZWEUNH/Xh2OgiiPQ2F6pluxNtVuj44A+q4smouk1ptN?= =?utf-8?q?ThVyepkj/cuR8pc2kyOU1d877myPpYZCxlhID/TqR7uxxVoAQUYCNP2UpLbGT8JIs?= =?utf-8?q?RHFVEPTCYFoAJawRdgwR4vIHrTDHgXxuV9rspLHFjEb9T1C0UPnJuZUvz2ijnHJGt?= =?utf-8?q?+HSuR+qV4sWiuTsc3AArl8KAWcZLEwICgDERDLPJpiMOwZfPzvhn9LJEZ4d/0sq0w?= =?utf-8?q?9VWRjX++j2mZbY3gYGpkCFfOnefqvV/z6EICK2hDRFVEzAndglT3P223CrQVy9RlN?= =?utf-8?q?3iL+4iGWJLsPV2HXSJWZtvZEayxipJVFWA8I1k8ikKON5Y1EzKuxhMmBbgc1TTtkS?= =?utf-8?q?J3g/cXgrEIVb8RpY/S9h1q0pBt6ku3LCZwpl1+wYSTDu6e6bp3/6Welm8WW2b3I8F?= =?utf-8?q?I8j4mRKJ+s0SSDwDSF/fIYC5WHgtCqj89t2+SI9wnvVNjpcQXBWhEr+sFvb0uJk3U?= =?utf-8?q?Y9w9yHCeKDC26svepb/bIFYAC65gg5ltO0JWVYNgGvZj+C3H+r2r/+bxFUEKdpY5X?= =?utf-8?q?hKKezp7bUYsKVvgCgkdw86kIkzooRITg0FcM/YRP00ghVz606YMYRq2i0lZSWPbBm?= =?utf-8?q?hVx0E+tW7x9LFjQeYCyad2Wga03n9LQWCHp59ziSv0N9zK4nS2sBZv6QqmjkM8X3u?= =?utf-8?q?eKlJFH5PNHBoSUFAxRfwp0Dby/lGyxG0WwXGKldR9d04x6UO9kCJpcULxA2/WgN8Q?= =?utf-8?q?CIXLvJrgUs6IWPwSg3umKjBtgIR6dTtflM+SGEXqEJbrkvzIY0Z29DNGgvb4rXor0?= =?utf-8?q?hJsGyk6YMk2HfFjidmAC0cptYUtm8gz8Tuog/WcEi9F2RqPlDUnGD7E8EhH2cMYAn?= =?utf-8?q?tMrchemnB9hireJLQK57u+MGJ5S/NmRgFwHX4lI830vUWldgUKO6kOjEr+ABDyeeT?= =?utf-8?q?gkj+3axYqxiG0b/cWN81LDNBBpKFmbf5LxpvqvAEH2tOfOHzhqLN4P7l1Melrva99?= =?utf-8?q?L4l4Chd03DaLskNlBMudHo7obVEadBpb1VQqUGFu13v+LUsSqaRcH6nrSCIuINABB?= =?utf-8?q?nbdSydqCN6jrlxKQOx5vjUar9v7SUitUAadv8wGFF/EP7PD6ZcIxqyUeZMG54Y6UF?= =?utf-8?q?D0AIrjl20lvT0WSCYGIviXpCMRK52B8kzdTkxe0YrhRC3t+IiL97FQKpX2s+uqElK?= =?utf-8?q?AGs8DPQH1kla1H1hhV/nMIgOrS2zyKaYp/gyxA7mv3CGEhsrnezgIWPuuPGBDYgSS?= =?utf-8?q?/q2OjcAcaPDc?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5ecd1a3c-2dd3-4100-a5cc-08db449654a2 X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Apr 2023 07:34:26.0829 (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: CtxXnqczmlMSAcPWofXr/LRi5NLSNe5vs7U+bj0OEmyDcJfSOfe5yXfvCE+Qma8f4ZCSCPHTiKA5Raa1PwzdkA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB8311 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?1764042136217112442?= X-GMAIL-MSGID: =?utf-8?q?1764042136217112442?= For quite come time print_insn() has been storing the address of a local variable into info->private_data. Since the compiler can't know that the field won't be accessed again after print_insn() returns, it may kind of legitimately diagnose this. And recent enough gcc does as of the introduction of the fetch_error() return paths (replacing setjmp()-based error handling). Utilizing that neither prefix_name() nor i386_dis_printf() actually use info->private_data, zap the pointer in fetch_error(), after having retrieved it for local use. --- Let's hope that this addresses the observed issues, which I haven't been seeing myself. And of course there are further return paths which may (sooner or later) also have such a warning trigger. --- a/opcodes/i386-dis.c +++ b/opcodes/i386-dis.c @@ -345,6 +345,12 @@ fetch_error (const instr_info *ins) const struct dis_private *priv = ins->info->private_data; const char *name = NULL; + /* Our caller has put a pointer to a local variable in info->private_data + and it is going to return right after this function has returned. Some + compilers diagnose this as a dangling pointer. Zap the pointer here to + avoid needing to do so on all involved return paths in the caller. */ + ins->info->private_data = NULL; + if (ins->codep <= priv->the_buffer) return -1;