Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/1.0/patches/2175721/?format=api
{ "id": 2175721, "url": "http://patchwork.ozlabs.org/api/1.0/patches/2175721/?format=api", "project": { "id": 17, "url": "http://patchwork.ozlabs.org/api/1.0/projects/17/?format=api", "name": "GNU Compiler Collection", "link_name": "gcc", "list_id": "gcc-patches.gcc.gnu.org", "list_email": "gcc-patches@gcc.gnu.org", "web_url": null, "scm_url": null, "webscm_url": null }, "msgid": "<20251218194020.906425-2-alfie.richards@arm.com>", "date": "2025-12-18T19:40:19", "name": "[v6,1/2] targethooks: Change SAME_FUNCTION_VERSIONS hook to support checking mergeability", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "5c1361edbba3b0cd04f93618d277579dde26820e", "submitter": { "id": 88864, "url": "http://patchwork.ozlabs.org/api/1.0/people/88864/?format=api", "name": "Alfie Richards", "email": "alfie.richards@arm.com" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/gcc/patch/20251218194020.906425-2-alfie.richards@arm.com/mbox/", "series": [ { "id": 485906, "url": "http://patchwork.ozlabs.org/api/1.0/series/485906/?format=api", "date": "2025-12-18T19:40:18", "name": "fmv: aarch64: targethooks: Add priority syntax", "version": 6, "mbox": "http://patchwork.ozlabs.org/series/485906/mbox/" } ], "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2175721/checks/", "tags": {}, "headers": { "Return-Path": "<gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org>", "X-Original-To": [ "incoming@patchwork.ozlabs.org", "gcc-patches@gcc.gnu.org" ], "Delivered-To": [ "patchwork-incoming@legolas.ozlabs.org", "gcc-patches@gcc.gnu.org" ], "Authentication-Results": [ "legolas.ozlabs.org;\n\tdkim=pass (1024-bit key;\n unprotected) header.d=arm.com header.i=@arm.com header.a=rsa-sha256\n header.s=selector1 header.b=plfopfn3;\n\tdkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com\n header.a=rsa-sha256 header.s=selector1 header.b=plfopfn3;\n\tdkim-atps=neutral", "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org\n (client-ip=38.145.34.32; helo=vm01.sourceware.org;\n envelope-from=gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org;\n receiver=patchwork.ozlabs.org)", "sourceware.org;\n\tdkim=pass (1024-bit key,\n unprotected) header.d=arm.com header.i=@arm.com header.a=rsa-sha256\n header.s=selector1 header.b=plfopfn3;\n\tdkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com\n header.a=rsa-sha256 header.s=selector1 header.b=plfopfn3", "sourceware.org;\n dmarc=pass (p=none dis=none) header.from=arm.com", "sourceware.org; spf=pass smtp.mailfrom=arm.com", "server2.sourceware.org;\n arc=pass smtp.remote-ip=52.101.66.45" ], "Received": [ "from vm01.sourceware.org (vm01.sourceware.org [38.145.34.32])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4dXLfq6Tt8z1y3t\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 19 Dec 2025 06:42:43 +1100 (AEDT)", "from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id A07664BA2E32\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 18 Dec 2025 19:42:41 +0000 (GMT)", "from DUZPR83CU001.outbound.protection.outlook.com\n (mail-northeuropeazon11012045.outbound.protection.outlook.com [52.101.66.45])\n by sourceware.org (Postfix) with ESMTPS id D03B74BA2E1C\n for <gcc-patches@gcc.gnu.org>; Thu, 18 Dec 2025 19:41:33 +0000 (GMT)", "from AM8P191CA0022.EURP191.PROD.OUTLOOK.COM (2603:10a6:20b:21a::27)\n by DU0PR08MB8663.eurprd08.prod.outlook.com (2603:10a6:10:401::6) with\n Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9434.6; Thu, 18 Dec\n 2025 19:41:28 +0000", "from AM4PEPF00027A5E.eurprd04.prod.outlook.com\n (2603:10a6:20b:21a:cafe::d0) by AM8P191CA0022.outlook.office365.com\n (2603:10a6:20b:21a::27) with Microsoft SMTP Server (version=TLS1_3,\n cipher=TLS_AES_256_GCM_SHA384) id 15.20.9434.6 via Frontend Transport; Thu,\n 18 Dec 2025 19:41:27 +0000", "from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by\n AM4PEPF00027A5E.mail.protection.outlook.com (10.167.16.72) with Microsoft\n SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9434.6\n via Frontend Transport; Thu, 18 Dec 2025 19:41:28 +0000", "from AM6P193CA0052.EURP193.PROD.OUTLOOK.COM (2603:10a6:209:8e::29)\n by AM8PR08MB5746.eurprd08.prod.outlook.com (2603:10a6:20b:1d8::20) with\n Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9434.7; Thu, 18 Dec\n 2025 19:40:21 +0000", "from AMS0EPF000001AA.eurprd05.prod.outlook.com\n (2603:10a6:209:8e:cafe::cb) by AM6P193CA0052.outlook.office365.com\n (2603:10a6:209:8e::29) with Microsoft SMTP Server (version=TLS1_3,\n cipher=TLS_AES_256_GCM_SHA384) id 15.20.9434.7 via Frontend Transport; Thu,\n 18 Dec 2025 19:40:20 +0000", "from nebula.arm.com (172.205.89.229) by\n AMS0EPF000001AA.mail.protection.outlook.com (10.167.16.150) with Microsoft\n SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id\n 15.20.9434.6 via Frontend Transport; Thu, 18 Dec 2025 19:40:21 +0000", "from AZ-NEU-EX04.Arm.com (10.240.25.138) by AZ-NEU-EX04.Arm.com\n (10.240.25.138) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.29; Thu, 18 Dec\n 2025 19:40:21 +0000", "from ip-10-249-56-165.eu-west-1.compute.internal (10.249.56.165) by\n mail.arm.com (10.240.25.138) with Microsoft SMTP Server id\n 15.2.2562.29 via Frontend Transport; Thu, 18 Dec 2025 19:40:21 +0000" ], "DKIM-Filter": [ "OpenDKIM Filter v2.11.0 sourceware.org A07664BA2E32", "OpenDKIM Filter v2.11.0 sourceware.org D03B74BA2E1C" ], "DMARC-Filter": "OpenDMARC Filter v1.4.2 sourceware.org D03B74BA2E1C", "ARC-Filter": "OpenARC Filter v1.0.0 sourceware.org D03B74BA2E1C", "ARC-Seal": [ "i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1766086894; cv=pass;\n b=Af+zgykT1FC/cKZynQPxmIg9LNsBuC/f/pBkJuvOK8ovVeV4pFtuNe7A+fn3U1cOdspvPlFvKo8Oz7AA8QCVqltBLo6mJGJkfFClju0MniQdlCp6WQ3J7GWwKRuxGPOUcmyIq+5O3tYC5ynUt8GfHNcFZHPdYJUR5OArB+g0gSc=", "i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;\n b=wlpWh/n3RBY3/Jq6rvYbdambslYZc3AcAMzCa80hoej8y4jgt4brTngaETla76WkU1Cn/P0ouSNqAOWcysFlq8fFDfKnnE9dlO4ZCg2oYoFtqeKfgULoeZ5ZsBxNc/IIdubmCFzHzFm7XZ30bY6rAKhPEvllnjFrnnSkIafJwTPrXkZ+L65D6tAFql6s9QqRFBDaAGEolCXHPdI6WGqq6Et6iB5zkmZl53EyhZOPuP3eP1+R+U/FSBhd5Bf2NaVZ07+5rbWFmFTj+qXNdx0c9mxymFqb5qAaqMpP07SlyQc74nFg7xXGOXcp5tPIpEr9qPhw6W4tU5DGI38k3FSVSg==", "i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=Tp7OhN7qIBMgk/jD5KbP4cmAL7C7vpVrWonY4poo9HshhQr26OXJcOAf9HxgdjiJ5xG3UmMG1nvpjQLWyiJ3gW7M73/CAN0BpvL6rVcdT2JqumD+a7Gr0nPH18eTtsnr/z3NpVwiVHfOwtx3ytx8KUJQqu9jpRE0d53K3SIvOjmJQhTijbgA3zswbzc4ZopKFwcVhtkG3PPrew20fE8c/4pBbuvafA5y5cp1L6jKVcpLmCZcS948EydHphp+0bZq6OlQi+0YfE3zSgXHd2/sq7N1uaAC9PMPoLNh5DkZNWzWm5Lf+9Hloifp1LHDtcJdOhjefMVAyrj2SSShvkeL/A==" ], "ARC-Message-Signature": [ "i=3; a=rsa-sha256; d=sourceware.org; s=key;\n t=1766086894; c=relaxed/simple;\n bh=a/a84HxLaNThl+vob9lIV/ghkaXEzNk+3uG6Ec6Gt6Y=;\n h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-ID:\n MIME-Version;\n b=wTarFNWmk/AwZoP09KCH2qOva58T4JGnG8IYXibGqh8vThCHXG/yMUvl41tHvSoGScXF0AlyMgTqd68X00YrTuxjrUrJKaTdN5tov9roAnQ0NjXONuGo7AfFGsfeG7OG8aoTNttD5bb9hGc+CNkbfDUT61Jv/b0Bg7xz5XRH1GE=", "i=2; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector10001;\n 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;\n bh=Az0+DZeW7v+9tPOYFa7qZsjFUJ1XS2sb7TQ7RdkEiQc=;\n b=uwDJiBCMygTGKYyHA7aWtgE0ebj4ghAUfDMgG3CvQfFiVQO0K7cEYuRgFz4omh9QGdH7gNDXbUdgtuNNh3Sa+o+Xf+6ia9DyWk90G34FVLENp6NXIjOBQyjQDSRp+Pz694VUe0hXSwTnub1PdGBzebvI+7RmlDfNFhek2n47F1sNxezX+JZHW1Usy+e9wFQaMQSS7FQNgvCGHDsbFUr7crjJnX91R1B+QD0otRH3v5BH+EXy4k1cCjEkQ/eg9j8K0CdjTyO2k9jg99lqA1MeflzSHKFycZumi6s4sWNVyWk0FTaKndnJBO9TmMeDfdPJDtlxtTT3rwjgHAPZpHrhnQ==", "i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector10001;\n 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;\n bh=Az0+DZeW7v+9tPOYFa7qZsjFUJ1XS2sb7TQ7RdkEiQc=;\n b=QqlnkscNvAPwxNuriPWiRs332dKVybpgpstaZRdVuSJ4WoB1GhJpc9MxAoPv2x6Z0wayOhbSU4/Ym+9imyFMDvpvDvVU4K5EdXNxsnlGuc8dus7RAZ2le3x6kCXjlPCBENCM1sKTgsaDw11AMDM1WnHvx8a7TiEoaCoHEvAw7mMcBC14bgA/X68rwwPKUYsGe9Ct22TXjYHNeDnJMfusMRs0oqPd8UqSuQaqry+k6Hkfdi1e7ly3Yq2tEkMJenZ7zoLKrRaftnqiZFrp7Jdy8NkBhqfX+ioL94sFbhkt/5oqjNGt3hdE0h5J0pY+Bi2l7jmyDH3wLhEKcXHlHLyEaQ==" ], "ARC-Authentication-Results": [ "i=3; server2.sourceware.org", "i=2; mx.microsoft.com 1; spf=pass (sender ip is\n 4.158.2.129) smtp.rcpttodomain=gcc.gnu.org smtp.mailfrom=arm.com; dmarc=pass\n (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass\n (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1\n spf=[1,1,smtp.mailfrom=arm.com] dmarc=[1,1,header.from=arm.com])", "i=1; mx.microsoft.com 1; spf=pass (sender ip is\n 172.205.89.229) smtp.rcpttodomain=gcc.gnu.org smtp.mailfrom=arm.com;\n dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com;\n dkim=none (message not signed); arc=none (0)" ], "DKIM-Signature": [ "v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=Az0+DZeW7v+9tPOYFa7qZsjFUJ1XS2sb7TQ7RdkEiQc=;\n b=plfopfn39tz89cw3qT1Q4ubzfre1edTdLEHYHn23KMQ5LZhPrGHnTXhiauSlejyjiMSHV9kzigVx9ObZblMz30q9sUoGllo2vSJTzINB6NIWpG0A9IWDxwCZRYwxD9mXq7ZeEG4ZwYx71Yx5HlPMm5ytNNpVWYXbXNkLCSbQpgw=", "v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=Az0+DZeW7v+9tPOYFa7qZsjFUJ1XS2sb7TQ7RdkEiQc=;\n b=plfopfn39tz89cw3qT1Q4ubzfre1edTdLEHYHn23KMQ5LZhPrGHnTXhiauSlejyjiMSHV9kzigVx9ObZblMz30q9sUoGllo2vSJTzINB6NIWpG0A9IWDxwCZRYwxD9mXq7ZeEG4ZwYx71Yx5HlPMm5ytNNpVWYXbXNkLCSbQpgw=" ], "X-MS-Exchange-Authentication-Results": [ "spf=pass (sender IP is 4.158.2.129)\n smtp.mailfrom=arm.com; dkim=pass (signature was verified)\n header.d=arm.com;dmarc=pass action=none header.from=arm.com;", "spf=pass (sender IP is 172.205.89.229)\n smtp.mailfrom=arm.com; dkim=none (message not signed)\n header.d=none;dmarc=pass action=none header.from=arm.com;" ], "Received-SPF": [ "Pass (protection.outlook.com: domain of arm.com designates\n 4.158.2.129 as permitted sender) receiver=protection.outlook.com;\n client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C", "Pass (protection.outlook.com: domain of arm.com designates\n 172.205.89.229 as permitted sender) receiver=protection.outlook.com;\n client-ip=172.205.89.229; helo=nebula.arm.com; pr=C" ], "From": "Alfie Richards <alfie.richards@arm.com>", "To": "<gcc-patches@gcc.gnu.org>", "CC": "<jlaw@ventanamicro.com>, <alice.carlotti@arm.com>,\n <andrew.pinski@oss.qualcomm.com>, <wilco.dijkstra@arm.com>,\n <richard.earnshaw@arm.com>, Alfie Richards <alfie.richards@arm.com>", "Subject": "[PATCH v6 1/2] targethooks: Change SAME_FUNCTION_VERSIONS hook to\n support checking mergeability", "Date": "Thu, 18 Dec 2025 19:40:19 +0000", "Message-ID": "<20251218194020.906425-2-alfie.richards@arm.com>", "X-Mailer": "git-send-email 2.34.1", "In-Reply-To": "<20251218194020.906425-1-alfie.richards@arm.com>", "References": "<20251218194020.906425-1-alfie.richards@arm.com>", "MIME-Version": "1.0", "Content-Transfer-Encoding": "8bit", "Content-Type": "text/plain", "X-EOPAttributedMessage": "1", "X-MS-TrafficTypeDiagnostic": "\n AMS0EPF000001AA:EE_|AM8PR08MB5746:EE_|AM4PEPF00027A5E:EE_|DU0PR08MB8663:EE_", "X-MS-Office365-Filtering-Correlation-Id": "9c354211-9cad-4b69-3d9f-08de3e6d6fe5", "x-checkrecipientrouted": "true", "NoDisclaimer": "true", "X-MS-Exchange-SenderADCheck": "1", "X-MS-Exchange-AntiSpam-Relay": "0", "X-Microsoft-Antispam-Untrusted": "BCL:0;\n ARA:13230040|82310400026|376014|36860700013|1800799024|3122999012;", "X-Microsoft-Antispam-Message-Info-Original": "\n QnY3xNJ7wLRB7z2sSbew8Lk9swtb3tvh4sahc/X5KlgFN2aP9wwclgRfR5LBvEnPBz+U73teLhQWe5VTJV98I2UgMq0rEOuhO9xo1BF2ZkmdPhYhvXRYJkidtENbAFaOZn93FiF6vjjoAnsOC5aDT5vA9GCr83jFXDk3SfF03IbINrfr/kAYUOYqbZqx+ILlFkHGBDfp1wFw/0g6o4KAFN1LFB2+UDVzPMqEdP6Pjd9uWsjj51vf0ABEg1Bqe6TtPFroBjBH7yV9Uyd2wkWGgqJk5nGUt0R0t9GRjCLv5JSTPXp7KoyC7Ti6C6UIvX3ax/F6mNUB/ND/qLM0U8rxQfX4unLfn6VhqdwoQ6KVgvO1g3YrQECG+3XjEKZn9R+B+pM1Vp8J9BY8uaX/5+nDi3PjLqtYSqsXKaCUjTeZo70QaqEU6LxVq0Z2q1x/TOhBsCiVRi8UjUACmPAvncGGFl2y44pgF1KJC0s01Ti/bn+WrY0dKL601v2ntW+tRSxiBfkt4v0nRat96OCoCg5+dh3Yst0DO56zCAC25FEJUaqKjEEU57FPZun5Bq054Ji+DiLCjqZt1Plm5nS1nnocPYgHydUD14ckdeLM3VuYOG3XA2HvPcZN4MfOx/7YXcH1j2pvDfZswtLmiIDLaIJnlGaanqfWbFRBy8Md7pR6x+42LUo1sau4ncLEIVDt0Qqv2wTSy0H8RD/rWBVoTADZNBAsw1K9YgNNTVAN56v5dgMQJwK/r5O0qD/6+casvsFZAthpMWvm1RdYn11CbBzOAGquP88jJBMF6M9Z0KeHwbQVHxdATXheIhDEoxEpYlA3cCGW4UJT77RQp4D76duqQfmNVKgb7J6ugtPh4FIEhNQ/1P4/Qb3Ipe5o7wOGWN6KmBhlDVHW5Z1u0pxw4TpfzSt7oxBUDmVYrQqq+MhL2MapPoiDfSeyOiTuXabMPcdGV+A4FR3HnHfm9xo8aiyWIq9tIifDuCHF+Ahcz2//Ao2CtNHlbckBwXpZ7dE9NsT8iQEaNWeZEuY6OC/4dV4KHB6U6+PapjdSCFOc5FANqmpJen+U+Qw8OzQbUwg8BUjOJ7K82qKHlRi2W3pOyTql+ELPQIj37U1p415uUQs8z5RORhnMFOACZyGbfq/xu29oNfPhUJIfhrLSnhj9w+iyaz+4O390sa/5p5wqJy+m4enyOoaQDKuy84R7NGQFXaXNOvcCe+Sls1BdHEST1xijq3UESWlDqSutR2L+Cl2s4+MFTBTZU9mMZoKBJRtYvlWqD+JRNRpPsPOxHN48JmxU0WEBcXf7As843Uc7HmokkGMBq6HIUOJUcmBsc+PttFpdNkP3zLLYdoKmagZGjMN/ED5nFCMwIjXqp0VmdyKqn2vSYesqDCWebKbPeybUigJUIiwo5uXf1qbGMCJgPnVDH3uA8EBFhIq4rW+KIxAV9KCX+OttPnP2vpp14YP/ycxWSG5oBpB0RPF/IxRgR47lyM5NgD9ZVVgVn06JNTPUtiHMwoWoHsMylGxV/vn54UqR4UaZBoE5NcCBd5UoDZl0Sfo/X2jt7vGrYYj9WomKI/0=", "X-Forefront-Antispam-Report-Untrusted": "CIP:172.205.89.229; CTRY:IE; LANG:en;\n SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:nebula.arm.com; PTR:InfoDomainNonexistent;\n CAT:NONE;\n SFS:(13230040)(82310400026)(376014)(36860700013)(1800799024)(3122999012);\n DIR:OUT; SFP:1101;", "X-MS-Exchange-Transport-CrossTenantHeadersStamped": [ "AM8PR08MB5746", "DU0PR08MB8663" ], "X-MS-Exchange-Transport-CrossTenantHeadersStripped": "\n AM4PEPF00027A5E.eurprd04.prod.outlook.com", "X-MS-PublicTrafficType": "Email", "X-MS-Office365-Filtering-Correlation-Id-Prvs": "\n e90689d6-3222-48a2-250f-08de3e6d4855", "X-Microsoft-Antispam": "BCL:0;\n ARA:13230040|376014|82310400026|36860700013|35042699022|14060799003|1800799024|3122999012;", "X-Microsoft-Antispam-Message-Info": "\n ZQHEXq/2TOPTQJljrege8AdL5ToT0ewMR/a7wJR0KHXID7Rwo4hauT6Jvd2KOfB22W3cI7YY570OHCACuOClEf8NTYpDZ/4uXHz1+UtzL6SDVpQ0Z6OHoZtMfcowW3WA8c99Pqj/pUDn0a398U+qA9zC7ERXoBOyB9M4vuVKl4ADLb0TVRgr7cKIRTXjw1BIISPqMzup/ZGCqrQP3FF8zBCOqC6Fps51xmmN6EB+uzANtceTIFq+yY9T0zQtwcQwcDqmeJcjff3ik6vzuzYh0W5M1ZouzdpV6RWuiYfWRoJwqifCJPW9D/cns+fchYdNgwBuC2RBTdGBcUCux5eGPGO/HtTi3DtG7R9GogDNwiqyf3v2BFagYZnXbqXWKkYafM0Vv4JGik/fvGSBo9DJK+4rebbjtsC9IIjDmDsJ520IWRAe3R1YF3+Dm+39+1u+9WuMVwH08vrcsZ2a0+A6Q9HOUBxKd1XYz5XUh9W0GPi4ZfNafxhd8LVsuvgk7UfHoQWXv2kKgraiO0MYMSp88B4sMvud9orPgjqE8cUwYwfEBnlFpRmNffX20bml4JWn0vucv6hut3eXS6YFAs5uS+awvBb8GolwF1i7nRzCTMVfzkhyoU7bWL5ajyGJyWm+FWa8vguvg50qtBE8+IG9qds+yiMtsxd0JvPE/m0us3R/Z3qo4h9ZABh+BHnvUsV4d7hTBzkL2wx0asPm7J2ZqvfF34INOJ5/bpQC2zOX2lqgzPuD4WK53pF0JpkNC2eQ74e0Nr0Mkb+1r+QF1Qexd5qhHu9/A9JiQ/lMuPikVdgIKp6/tNEtnjz4Jb5Mw8G+kUzgpgi0CtsmLCIPG1idudJUh16Kup8YuywmzuvnBOy1F/nz4mXAQLC9bfhqHhufSb9vqFHoNzMLaM91Ksvh4Pwxe4zK41md+m8uxwz/rwdLD1ozsCHd7CT2rnmhLxxKhz/hWKTMKEJOZ2RZcZEWm4NQ9Z1Mn1b3ccbNC8KiP5A/hYBXP28QDr5SmXZgh3yzIUR5UtUZeBVc7K25OoCgUZn4M+avuoFXJCUbq/8vVZVySAuDeyr4LkTjMu2sYHHllMykiep8N5E6dei0/pptfozV0xm50oQqEk8soNkwBnXOlw8UewSDw2mwe0aJ0MP0OkeCR3mcdiexRTRuRK8hoC7OZcej2NQvEHM4bPzoOE6iwy3xIj/JpujLAvFGstUpULcHh/MBRhjDxZ4wM9IWiAeOYEyoK+w/J5XQHJLOM0AGSjiC10wW6EsbvMcYrnCkxPhJo0/VTFoHuKVkrKXOCqyJUCxnJ6Nj+TnhN254H91atvlkeS3AtQdrqkw6rwI3Gx6rpWcKHzol2OtXA7wP8DR/HgT43jhxCgCxNmEB+4fJxMJU1a/5yA1wAYgXVchG0tQGPE75Hv2Qc9lNT9IzQNxT2qIb68NbgcQDrWU/7uD9/rb8a7n17bVF0J3EV4v8RvEC09SqSvh5Xbgy4YMFQ2OsSpfpi1pTspEvUHiERl9NDx7JCdn5qHvo4iKMVcm7EpoFXVdiN22XuZb5tfIWt3qewi8LjBRyxA9BziBokPM=", "X-Forefront-Antispam-Report": "CIP:4.158.2.129; CTRY:GB; LANG:en; SCL:1; SRV:;\n IPV:NLI; SFV:NSPM; H:outbound-uk1.az.dlp.m.darktrace.com;\n PTR:InfoDomainNonexistent; CAT:NONE;\n SFS:(13230040)(376014)(82310400026)(36860700013)(35042699022)(14060799003)(1800799024)(3122999012);\n DIR:OUT; SFP:1101;", "X-OriginatorOrg": "arm.com", "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "18 Dec 2025 19:41:28.1742 (UTC)", "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n 9c354211-9cad-4b69-3d9f-08de3e6d6fe5", "X-MS-Exchange-CrossTenant-Id": "f34e5979-57d9-4aaa-ad4d-b122a662184d", "X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp": "\n TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[4.158.2.129];\n Helo=[outbound-uk1.az.dlp.m.darktrace.com]", "X-MS-Exchange-CrossTenant-AuthSource": "\n AM4PEPF00027A5E.eurprd04.prod.outlook.com", "X-MS-Exchange-CrossTenant-AuthAs": "Anonymous", "X-MS-Exchange-CrossTenant-FromEntityHeader": "HybridOnPrem", "X-BeenThere": "gcc-patches@gcc.gnu.org", "X-Mailman-Version": "2.1.30", "Precedence": "list", "List-Id": "Gcc-patches mailing list <gcc-patches.gcc.gnu.org>", "List-Unsubscribe": "<https://gcc.gnu.org/mailman/options/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=unsubscribe>", "List-Archive": "<https://gcc.gnu.org/pipermail/gcc-patches/>", "List-Post": "<mailto:gcc-patches@gcc.gnu.org>", "List-Help": "<mailto:gcc-patches-request@gcc.gnu.org?subject=help>", "List-Subscribe": "<https://gcc.gnu.org/mailman/listinfo/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=subscribe>", "Errors-To": "gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org" }, "content": "This changes the hook to support checking version mergeability for cases\nwhere the version strings do imply the same version, but are conflicting\nin some other way so cannot be merged.\n\nThis is a change required for adding priority version support in aarch64.\n\ngcc/ChangeLog:\n\n\t* target.def (TARGET_OPTION_SAME_FUNCTION_VERSIONS): Update\n\tdocumentation.\n\t* tree.cc (disjoint_version_decls): Change for new NULL parameter\n\tto same_function_versions.\n\t(diagnose_versioned_decls): Update to pass diagnostic location to\n\tsame_function_versions.\n\t* doc/tm.texi: Regenerate.\n\t* config/aarch64/aarch64.cc (aarch64_same_function_versions):\n\tUpdate hook impl for new arguments.\n\t* config/riscv/riscv.cc (riscv_same_function_versions): Update\n\thook impl for new arguments.\n\t* config/loongarch/loongarch.cc\n\t(loongarch_same_function_versions): Likewise\n\t* hooks.cc (hook_stringslice_stringslice_unreachable): Changed\n\tto...\n\t(hook_stringslice_consttree_stringslice_consttree_unreachable):\n\t...this and add extra arguments.\n\t* hooks.h (hook_stringslice_stringslice_unreachable): Changed\n\tto...\n\t(hook_stringslice_consttree_stringslice_consttree_unreachable):\n\tand add extra arguments.\n---\n gcc/config/aarch64/aarch64.cc | 19 +++++++++--------\n gcc/config/loongarch/loongarch.cc | 3 ++-\n gcc/config/riscv/riscv.cc | 3 ++-\n gcc/doc/tm.texi | 8 +++++++-\n gcc/hooks.cc | 5 ++++-\n gcc/hooks.h | 2 +-\n gcc/target.def | 18 +++++++++++-----\n gcc/tree.cc | 34 +++++++++++++++++--------------\n 8 files changed, 59 insertions(+), 33 deletions(-)", "diff": "diff --git a/gcc/config/aarch64/aarch64.cc b/gcc/config/aarch64/aarch64.cc\nindex 8b7253b11fe..7baf041ceb3 100644\n--- a/gcc/config/aarch64/aarch64.cc\n+++ b/gcc/config/aarch64/aarch64.cc\n@@ -21499,19 +21499,22 @@ aarch64_get_function_versions_dispatcher (void *decl)\n function. */\n \n bool\n-aarch64_same_function_versions (string_slice str1, string_slice str2)\n+aarch64_same_function_versions (string_slice old_str, const_tree,\n+\t\t\t\tstring_slice new_str, const_tree)\n {\n enum aarch_parse_opt_result parse_res;\n- aarch64_fmv_feature_mask feature_mask1;\n- aarch64_fmv_feature_mask feature_mask2;\n- parse_res = aarch64_parse_fmv_features (str1, NULL,\n-\t\t\t\t\t &feature_mask1, NULL);\n+ aarch64_fmv_feature_mask old_feature_mask;\n+ aarch64_fmv_feature_mask new_feature_mask;\n+\n+ parse_res = aarch64_parse_fmv_features (old_str, NULL, &old_feature_mask,\n+\t\t\t\t\t NULL);\n gcc_assert (parse_res == AARCH_PARSE_OK);\n- parse_res = aarch64_parse_fmv_features (str2, NULL,\n-\t\t\t\t\t &feature_mask2, NULL);\n+\n+ parse_res = aarch64_parse_fmv_features (new_str, NULL, &new_feature_mask,\n+\t\t\t\t\t NULL);\n gcc_assert (parse_res == AARCH_PARSE_OK);\n \n- return feature_mask1 == feature_mask2;\n+ return old_feature_mask == new_feature_mask;\n }\n \n /* Implement TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P. Use an opt-out\ndiff --git a/gcc/config/loongarch/loongarch.cc b/gcc/config/loongarch/loongarch.cc\nindex 0b50aa214fd..f5fa9ead2be 100644\n--- a/gcc/config/loongarch/loongarch.cc\n+++ b/gcc/config/loongarch/loongarch.cc\n@@ -12165,7 +12165,8 @@ loongarch_generate_version_dispatcher_body (void *node_p)\n This assumes that FN1 and FN2 have the same signature. */\n \n bool\n-loongarch_option_same_function_versions (string_slice str1, string_slice str2)\n+loongarch_option_same_function_versions (string_slice str1, const_tree,\n+\t\t\t\t\t string_slice str2, const_tree)\n {\n loongarch_fmv_feature_mask feature_mask1;\n loongarch_fmv_feature_mask feature_mask2;\ndiff --git a/gcc/config/riscv/riscv.cc b/gcc/config/riscv/riscv.cc\nindex 96519c96a2b..3a0449e2ca8 100644\n--- a/gcc/config/riscv/riscv.cc\n+++ b/gcc/config/riscv/riscv.cc\n@@ -14823,7 +14823,8 @@ compare_fmv_features (const struct riscv_feature_bits &mask1,\n version. */\n \n bool\n-riscv_same_function_versions (string_slice v1, string_slice v2)\n+riscv_same_function_versions (string_slice v1, const_tree, string_slice v2,\n+\t\t\t const_tree)\n {\n struct riscv_feature_bits mask1, mask2;\n int prio1, prio2;\ndiff --git a/gcc/doc/tm.texi b/gcc/doc/tm.texi\nindex 2ddb11846ee..ce7ad16100d 100644\n--- a/gcc/doc/tm.texi\n+++ b/gcc/doc/tm.texi\n@@ -11012,9 +11012,15 @@ changed via the optimize attribute or pragma, see\n @code{TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE}\n @end deftypefn\n \n-@deftypefn {Target Hook} bool TARGET_OPTION_SAME_FUNCTION_VERSIONS (string_slice @var{fn1}, string_slice @var{fn2})\n+@deftypefn {Target Hook} bool TARGET_OPTION_SAME_FUNCTION_VERSIONS (string_slice @var{fn1}, const_tree @var{decl1}, string_slice @var{fn2}, const_tree @var{decl2})\n This target hook returns @code{true} if the target/target-version strings\n @var{fn1} and @var{fn2} imply the same function version.\n+\n+If @var{decl1} and @var{decl2} are non @code{NULL} then @var{fn1} and\n+@var{fn2} are from an earlier and a later declaration respectively, and the\n+hook diagnoses any version string incompatibility for these decls.\n+If the version strings are incompatible and the declarations can not be\n+merged, then hook emits an error.\n @end deftypefn\n \n @deftypefn {Target Hook} bool TARGET_OPTION_FUNCTIONS_B_RESOLVABLE_FROM_A (tree @var{decl_a}, tree @var{decl_v}, tree @var{base})\ndiff --git a/gcc/hooks.cc b/gcc/hooks.cc\nindex 5321142495b..06aebd3daaa 100644\n--- a/gcc/hooks.cc\n+++ b/gcc/hooks.cc\n@@ -595,7 +595,10 @@ hook_stringslice_locationtptr_true (string_slice, location_t *)\n }\n \n bool\n-hook_stringslice_stringslice_unreachable (string_slice, string_slice)\n+hook_stringslice_consttree_stringslice_consttree_unreachable (string_slice,\n+\t\t\t\t\t\t\t const_tree,\n+\t\t\t\t\t\t\t string_slice,\n+\t\t\t\t\t\t\t const_tree)\n {\n gcc_unreachable ();\n }\ndiff --git a/gcc/hooks.h b/gcc/hooks.h\nindex a7021f532a5..1d8630c8349 100644\n--- a/gcc/hooks.h\n+++ b/gcc/hooks.h\n@@ -139,6 +139,6 @@ extern opt_machine_mode hook_optmode_mode_uhwi_none (machine_mode,\n \t\t\t\t\t\t unsigned HOST_WIDE_INT);\n \n extern bool hook_stringslice_locationtptr_true (string_slice, location_t *);\n-extern bool hook_stringslice_stringslice_unreachable (string_slice, string_slice);\n+extern bool hook_stringslice_consttree_stringslice_consttree_unreachable (string_slice, const_tree, string_slice, const_tree);\n \n #endif\ndiff --git a/gcc/target.def b/gcc/target.def\nindex d695f38fbcc..b994ccef215 100644\n--- a/gcc/target.def\n+++ b/gcc/target.def\n@@ -6971,14 +6971,22 @@ changed via the optimize attribute or pragma, see\\n\\\n void, (void),\n hook_void_void)\n \n-/* This function returns true if FN1 and FN2 define the same version of a\n- function. */\n+/* This function returns true if FN1 and FN2 define the same version\n+ of a function.\n+ If DECL1 and DECL2 is not-null then emit a diagnostic if the versions do\n+ imply the same version, but are not mergeable. */\n DEFHOOK\n (same_function_versions,\n \"This target hook returns @code{true} if the target/target-version strings\\n\\\n-@var{fn1} and @var{fn2} imply the same function version.\",\n- bool, (string_slice fn1, string_slice fn2),\n- hook_stringslice_stringslice_unreachable)\n+@var{fn1} and @var{fn2} imply the same function version.\\n\\\n+\\n\\\n+If @var{decl1} and @var{decl2} are non @code{NULL} then @var{fn1} and\\n\\\n+@var{fn2} are from an earlier and a later declaration respectively, and the\\n\\\n+hook diagnoses any version string incompatibility for these decls.\\n\\\n+If the version strings are incompatible and the declarations can not be\\n\\\n+merged, then hook emits an error.\",\n+ bool, (string_slice fn1, const_tree decl1, string_slice fn2, const_tree decl2),\n+ hook_stringslice_consttree_stringslice_consttree_unreachable)\n \n /* Checks if we can be certain that function DECL_A could resolve DECL_B. */\n DEFHOOK\ndiff --git a/gcc/tree.cc b/gcc/tree.cc\nindex 8dcb59dc875..69f44846b7f 100644\n--- a/gcc/tree.cc\n+++ b/gcc/tree.cc\n@@ -15610,7 +15610,8 @@ disjoint_version_decls (tree fn1, tree fn2)\n \t for (string_slice v1 : fn1_versions)\n \t\t{\n \t\t for (string_slice v2 : fn2_versions)\n-\t\t if (targetm.target_option.same_function_versions (v1, v2))\n+\t\t if (targetm.target_option.same_function_versions (v1, NULL,\n+\t\t\t\t\t\t\t\t v2, NULL))\n \t\t return false;\n \t\t}\n \t return true;\n@@ -15628,7 +15629,8 @@ disjoint_version_decls (tree fn1, tree fn2)\n \t if (!v2.is_valid ())\n \t\tv2 = \"default\";\n \t for (string_slice v1 : fn1_versions)\n-\t\tif (targetm.target_option.same_function_versions (v1, v2))\n+\t\tif (targetm.target_option.same_function_versions (v1, NULL, v2,\n+\t\t\t\t\t\t\t\t NULL))\n \t\t return false;\n \t return true;\n \t }\n@@ -15647,7 +15649,7 @@ disjoint_version_decls (tree fn1, tree fn2)\n \t if (!v2.is_valid ())\n \t v2 = \"default\";\n \n-\t if (targetm.target_option.same_function_versions (v1, v2))\n+\t if (targetm.target_option.same_function_versions (v1, NULL, v2, NULL))\n \t return false;\n \n \t return true;\n@@ -15695,30 +15697,32 @@ diagnose_versioned_decls (tree old_decl, tree new_decl)\n the two sets of target_clones imply the same set of versions. */\n if (old_target_clones_attr && new_target_clones_attr)\n {\n- auto_vec<string_slice> fn1_versions = get_clone_versions (old_decl);\n- auto_vec<string_slice> fn2_versions = get_clone_versions (new_decl);\n+ auto_vec<string_slice> old_versions = get_clone_versions (old_decl);\n+ auto_vec<string_slice> new_versions = get_clone_versions (new_decl);\n \n bool mergeable = true;\n \n- if (fn1_versions.length () != fn2_versions.length ())\n+ if (old_versions.length () != new_versions.length ())\n \tmergeable = false;\n \n /* Check both inclusion directions. */\n- for (auto fn1v : fn1_versions)\n+ for (auto oldv: old_versions)\n \t{\n \t bool matched = false;\n-\t for (auto fn2v : fn2_versions)\n-\t if (targetm.target_option.same_function_versions (fn1v, fn2v))\n+\t for (auto newv: new_versions)\n+\t if (targetm.target_option.same_function_versions (oldv, old_decl,\n+\t\t\t\t\t\t\t newv, new_decl))\n \t matched = true;\n \t if (!matched)\n \t mergeable = false;\n \t}\n \n- for (auto fn2v : fn2_versions)\n+ for (auto newv: new_versions)\n \t{\n \t bool matched = false;\n-\t for (auto fn1v : fn1_versions)\n-\t if (targetm.target_option.same_function_versions (fn1v, fn2v))\n+\t for (auto oldv: old_versions)\n+\t if (targetm.target_option.same_function_versions (oldv, old_decl,\n+\t\t\t\t\t\t\t newv, new_decl))\n \t matched = true;\n \t if (!matched)\n \t mergeable = false;\n@@ -15767,9 +15771,9 @@ diagnose_versioned_decls (tree old_decl, tree new_decl)\n return true;\n }\n \n- /* The only remaining case is two target_version annotated decls. Must\n- be mergeable as otherwise are distinct. */\n- return false;\n+ /* The only remaining case is two target_version annotated decls. */\n+ return !targetm.target_option.same_function_versions\n+\t (old_target_attr, old_decl, new_target_attr, new_decl);\n }\n \n void\n", "prefixes": [ "v6", "1/2" ] }