From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2060c.outbound.protection.outlook.com [IPv6:2a01:111:f403:2412::60c]) by sourceware.org (Postfix) with ESMTPS id C64843882118 for ; Tue, 18 Jun 2024 09:10:26 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org C64843882118 Authentication-Results: sourceware.org; dmarc=fail (p=quarantine dis=none) header.from=amd.com Authentication-Results: sourceware.org; spf=fail smtp.mailfrom=amd.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org C64843882118 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=2a01:111:f403:2412::60c ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1718701828; cv=pass; b=d5m/AQlz6GTaNP0/mCePOHXtDRxm0xk84BpkbB1ME9cyumKADuO0/hga/+P/EsqlkBF82wFOotvyB14ngdupBTg3XzjKbGYSF7WN5KlQYxMY06wOSoX+i2y1Ir3wJdh2ypBBgoxCi9BC2vThZMYM9eR/SzzNHzajtM+9vHEl/K4= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1718701828; c=relaxed/simple; bh=nY8f74Suo2trdhVMOYAzWp3J0WuxZCQzMIZUe+E/1oQ=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=UWCziaYYdElvFGl1DXAfC3QQkC9hj0IenujfhMJdyB5xli7PFFrMCqo6phxS+cq/Twm2etcwS01SBWoVy0iAiNl1M3c9kTyXetOdkHdOpay3usrlvHz48oYCv0TEvDOdyZ7TI6ptuVKn0q/sphPFT4AXuj9akQeYCLlLop3wwlY= ARC-Authentication-Results: i=2; server2.sourceware.org ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=M0Krlqlwqa8t9X5P9poz75cDVc0nmgZVW46BDTNMNAfylvoJhtcOCIgXtrSRxVB9hR/14K9KOwZA1C9VWjs+N9b4FuHnwdwp5gdwe0X81WikmCY32H/8zqsXt+ArH1CSjlvg2yxSpXbIiX2NbEtxadc9EMxX3NJ1bWjayvKbKZNn0B02freCJqNe8CF2JFu2S9Mb39NWHkN1hZLZ9OA9x9dAh9zGV2jUQIkKSFsmJZrnQC6vymc++hiCnVCZNMWhzk1ETJx/w8bEG5IRS7RcijbacHUeiHRVNwA+dSuRuXLkH+rEi05vHfsC2rc5sjrmLnxipGGyC1GIrcQ2vfmJhA== 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=VycTEIjnSZfyX0NDnBCLw54kRnvJ84FtLFnBrT+Ae24=; b=D4eVb6nmR6CSgkjcKHoCdiss7KTXaLxlevwb+ywJbnDn1jJQ2fRJ5srVI/+EPxe70TapQWhIjzVztkZeyxe6cvOcf47si19r7yYkG+o7ZTlKYr67UAHItSjiZo7YJ/ww5Gm/BIg3n0Zpo/XE57nu8exm7LGlyZ8khp/aoXn8MtzOE/5j4BglarXX2U0vH7j9rlyyN45O2ELGSA6dETNPB6Hifl3Ta8zqvcn5tygjmnxVtq3q1m+GK7xlX56oWUxhQ8Vrvc+PS8/sTF88l+pylxfCt/aKYxWfQ56vackViUEVKFXpC0FjvJrfAeim2WCIDIPmyxVqLioqy90H+o6UFA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=sourceware.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=VycTEIjnSZfyX0NDnBCLw54kRnvJ84FtLFnBrT+Ae24=; b=Cqu6iIUjKAwoZDYBBI6dD2tBeX8eJld2ZWuO2BZCPvZZKXnttZFcdkP1KtkYloADn43FOhe494OlI35u5eYXwopv6fmxys1EtbOwmyn3JcBZHPkR8VYKqu6WJT9f4KOPbNxLY/Lvf8Is8/mtPbLtikXOAJkS6sNo2QGqpZPp+YI= Received: from BN7PR06CA0043.namprd06.prod.outlook.com (2603:10b6:408:34::20) by DS7PR12MB6119.namprd12.prod.outlook.com (2603:10b6:8:99::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7677.30; Tue, 18 Jun 2024 09:10:23 +0000 Received: from BN1PEPF00004689.namprd05.prod.outlook.com (2603:10b6:408:34:cafe::67) by BN7PR06CA0043.outlook.office365.com (2603:10b6:408:34::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7677.31 via Frontend Transport; Tue, 18 Jun 2024 09:10:23 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by BN1PEPF00004689.mail.protection.outlook.com (10.167.243.134) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.7677.15 via Frontend Transport; Tue, 18 Jun 2024 09:10:23 +0000 Received: from khazad-dum.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 18 Jun 2024 04:10:16 -0500 From: Lancelot SIX To: CC: , Lancelot SIX Subject: [PATCH] gdb/python/python-internal.h: avoid uninitialized constexpr Date: Tue, 18 Jun 2024 10:09:52 +0100 Message-ID: <20240618090952.537478-1-lancelot.six@amd.com> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-Originating-IP: [10.180.168.240] X-ClientProxiedBy: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BN1PEPF00004689:EE_|DS7PR12MB6119:EE_ X-MS-Office365-Filtering-Correlation-Id: fe596816-5d7e-434b-8478-08dc8f767c34 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230037|376011|1800799021|82310400023|36860700010; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?lHa/GyqnlpJ1qfQn0S2RnYZ4IBe9s+02fqNpRukjgwyjVoFU6Wgc2MUFqJ59?= =?us-ascii?Q?aWJKwxlm6czM5N72S5loKYcbpkAwHMgcrm/eP1sGBniDZ2Fl61LCJvtAEcgR?= =?us-ascii?Q?Qild4KcidWXvneL+YlfLUXwa9hxU9Ff0mT+odUyz/TEY8caXyKcABE5VSJwj?= =?us-ascii?Q?fQ+x16YJ+Gz05nhzdqNUbp2yKivpTdXeulfqbJO9QhUZUWH48sRbxprqyGdH?= =?us-ascii?Q?i4ps6c3Ea2WKuwtNMd91tfOdhjqOSWLN9ryCwv/yrT7KdSgOr+OVusHhm08+?= =?us-ascii?Q?Qvh2avBhK7z10/WgcuEaU3XQ/2kpwjhNEu55MXyYm28lytOJ+0IQIdyNiz12?= =?us-ascii?Q?WIIeRifJvkQwDJfriRgVosgd7z5aUu9PNOeuzuCW6xawakVvqO4pY1ZgRt7O?= =?us-ascii?Q?pZsjXqvjNQ+20pIxpO+0sRfvSOeLcg0/D2dmolffvZwKukNMRZRBjqW4hcLV?= =?us-ascii?Q?lTduwRmkKxqc/xhTtuTxKxk4k1mFwuq1a/awNjD5YtDptkDdF5TQPXh2h6Su?= =?us-ascii?Q?ak+ChM+r4936R+wP/wVjcPnYve0RAIjxWVnrh9NaC7y4Igc7LvLlO6wBjnXP?= =?us-ascii?Q?TrHiAs85LlXXoyU2pAASz6JE9836i8gB3XNWeIh6SMZrPYOTpdUqy7m/dltO?= =?us-ascii?Q?XWo7UqFggivsLbu0mJOK35YYs81rwFCa37fiQfOaRAP06jjVDj9CQrRaeFx8?= =?us-ascii?Q?WozWGucJq0Txiq4MoY9RmpNcUqFi38tR9V1kVxUAA/jGwpOshXMbbV1FgFM5?= =?us-ascii?Q?PK4SjSjQ8/ZuXLlnkbdZEOR/XjJYooUJ6WjTY66Hd4UVOu7K65jimrP4UEWu?= =?us-ascii?Q?gmO6KLcRkHXmX2bODbxoCJMdmNnuLEodcbuokQWR4cca7kH8raQ+Cgi1iPDS?= =?us-ascii?Q?A55O3fSM81YeVCQLkIVLG/0kxf5d+5Z+4l/9l1cUTXIuMzo2jNZXoY3F1fYW?= =?us-ascii?Q?U2U6hTrPUePS45PlsrsXREM86q6SaJYshWXOKWtKPahYxPKFiRZ4ypmholGG?= =?us-ascii?Q?SeMLlG3uKqY/MCwVK9/lUsYo22ELWM+J3CCQixu7OEXejXhbtJKgmE2WW1F/?= =?us-ascii?Q?8EOkIuMBoeuPm4RJPNahqhD7F9wypsWKKJQPSCu8BsIZOvAcnzstIXssFd9Z?= =?us-ascii?Q?QCQfgv0VkDN5RNnwZNGeGZ2RFv1UmdFQyCsfPpUsmzL54xI8d6LNP35cpd3K?= =?us-ascii?Q?uYSfMQ0RfbVtglEyUujgnMi2n9CRTj6tari/L898RIzlmuwK0qjqvC4uIQrY?= =?us-ascii?Q?xxxftv96UyV5A0Hs4k8j++IpQx5D0fkXiEWLyQWd3JIKtnL0NiH4WAkgmGbF?= =?us-ascii?Q?6FgWw/mE93AwFzDedwE6hrG/AOH2gfWcNGtnfbUs4Xy5aafAS7t+W56Avh1X?= =?us-ascii?Q?tuWYvBLEHa6h2q0lrvRc1FWTRKxp/OEDnCXxETx83+nxiHtLow=3D=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230037)(376011)(1800799021)(82310400023)(36860700010);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Jun 2024 09:10:23.1872 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: fe596816-5d7e-434b-8478-08dc8f767c34 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BN1PEPF00004689.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB6119 X-Spam-Status: No, score=-11.3 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FORGED_SPF_HELO,GIT_PATCH_0,SPF_HELO_PASS,SPF_NONE,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: The following recent change introduced a regression when building using clang++: commit 764af878259768bb70c65bdf3f3285c2d6409bbd Date: Wed Jun 12 18:58:49 2024 +0200 [gdb/python] Add typesafe wrapper around PyObject_CallMethod The error message is: ../../gdb/python/python-internal.h:151:16: error: default initialization of an object of const type 'const char' constexpr char gdbpy_method_format; ^ = '\0' CXX python/py-block.o 1 error generated. make[2]: *** [Makefile:1959: python/py-arch.o] Error 1 make[2]: *** Waiting for unfinished jobs.... In file included from ../../gdb/python/py-auto-load.c:25: ../../gdb/python/python-internal.h:151:16: error: default initialization of an object of const type 'const char' constexpr char gdbpy_method_format; ^ = '\0' 1 error generated. make[2]: *** [Makefile:1959: python/py-auto-load.o] Error 1 In file included from ../../gdb/python/py-block.c:23: ../../gdb/python/python-internal.h:151:16: error: default initialization of an object of const type 'const char' constexpr char gdbpy_method_format; ^ = '\0' 1 error generated. This patch fixes this by changing gdbpy_method_format to be a templated struct, and only have its specializations define the static constexpr member "format". This way, we avoid having an uninitialized constexpr expression, regardless of it being instantiated or not. Change-Id: I5bec241144f13500ef78daea30f00d01e373692d --- gdb/python/python-internal.h | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/gdb/python/python-internal.h b/gdb/python/python-internal.h index f4c35babe46..fec0010a444 100644 --- a/gdb/python/python-internal.h +++ b/gdb/python/python-internal.h @@ -148,19 +148,31 @@ typedef long Py_hash_t; /* A template variable holding the format character (as for Py_BuildValue) for a given type. */ template -constexpr char gdbpy_method_format; +struct gdbpy_method_format {}; template<> -constexpr char gdbpy_method_format = GDB_PY_LL_ARG[0]; +struct gdbpy_method_format +{ + static constexpr char format = GDB_PY_LL_ARG[0]; +}; template<> -constexpr char gdbpy_method_format = GDB_PY_LLU_ARG[0]; +struct gdbpy_method_format +{ + static constexpr char format = GDB_PY_LLU_ARG[0]; +}; template<> -constexpr char gdbpy_method_format = 'i'; +struct gdbpy_method_format +{ + static constexpr char format = 'i'; +}; template<> -constexpr char gdbpy_method_format = 'I'; +struct gdbpy_method_format +{ + static constexpr char format = 'I'; +}; /* A helper function to compute the PyObject_CallMethod / Py_BuildValue format given the argument types. */ @@ -169,7 +181,7 @@ template constexpr std::array gdbpy_make_fmt () { - return { gdbpy_method_format..., '\0' }; + return { gdbpy_method_format::format..., '\0' }; } /* Typesafe wrapper around PyObject_CallMethod. base-commit: 0915235d341841ac7f13bd3136991c19b4a6746b -- 2.34.1