Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/2197084/?format=api
{ "id": 2197084, "url": "http://patchwork.ozlabs.org/api/patches/2197084/?format=api", "web_url": "http://patchwork.ozlabs.org/project/gcc/patch/20260217024504.1903147-1-ppalka@redhat.com/", "project": { "id": 17, "url": "http://patchwork.ozlabs.org/api/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, "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<20260217024504.1903147-1-ppalka@redhat.com>", "list_archive_url": null, "date": "2026-02-17T02:45:04", "name": "c++: unifying LAMBDA_EXPR [PR122318]", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "82edd2446c8534d8329af1a0bb50d36e22f55ca5", "submitter": { "id": 78319, "url": "http://patchwork.ozlabs.org/api/people/78319/?format=api", "name": "Patrick Palka", "email": "ppalka@redhat.com" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/gcc/patch/20260217024504.1903147-1-ppalka@redhat.com/mbox/", "series": [ { "id": 492364, "url": "http://patchwork.ozlabs.org/api/series/492364/?format=api", "web_url": "http://patchwork.ozlabs.org/project/gcc/list/?series=492364", "date": "2026-02-17T02:45:04", "name": "c++: unifying LAMBDA_EXPR [PR122318]", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/492364/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2197084/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2197084/checks/", "tags": {}, "related": [], "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=redhat.com header.i=@redhat.com header.a=rsa-sha256\n header.s=mimecast20190719 header.b=H+uXIkCT;\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=redhat.com header.i=@redhat.com header.a=rsa-sha256\n header.s=mimecast20190719 header.b=H+uXIkCT", "sourceware.org; dmarc=pass (p=quarantine dis=none)\n header.from=redhat.com", "sourceware.org; spf=pass smtp.mailfrom=redhat.com", "server2.sourceware.org;\n arc=none smtp.remote-ip=170.10.133.124" ], "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 4fFPC85JcXz1xwC\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 17 Feb 2026 13:45:40 +1100 (AEDT)", "from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id 304CC4BAD155\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 17 Feb 2026 02:45:38 +0000 (GMT)", "from us-smtp-delivery-124.mimecast.com\n (us-smtp-delivery-124.mimecast.com [170.10.133.124])\n by sourceware.org (Postfix) with ESMTP id 2EBB14BA23F2\n for <gcc-patches@gcc.gnu.org>; Tue, 17 Feb 2026 02:45:10 +0000 (GMT)", "from mail-qk1-f197.google.com (mail-qk1-f197.google.com\n [209.85.222.197]) by relay.mimecast.com with ESMTP with STARTTLS\n (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id\n us-mta-678-R1jeFmKdPkSD1v-hsikKWQ-1; Mon, 16 Feb 2026 21:45:08 -0500", "by mail-qk1-f197.google.com with SMTP id\n af79cd13be357-8c710279d57so275686785a.3\n for <gcc-patches@gcc.gnu.org>; Mon, 16 Feb 2026 18:45:08 -0800 (PST)", "from idea ([2600:4040:aa66:bf00:9e8e:99ff:fed1:71f])\n by smtp.gmail.com with ESMTPSA id\n 6a1803df08f44-8971cd8baa2sm162307586d6.31.2026.02.16.18.45.05\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Mon, 16 Feb 2026 18:45:05 -0800 (PST)" ], "DKIM-Filter": [ "OpenDKIM Filter v2.11.0 sourceware.org 304CC4BAD155", "OpenDKIM Filter v2.11.0 sourceware.org 2EBB14BA23F2" ], "DMARC-Filter": "OpenDMARC Filter v1.4.2 sourceware.org 2EBB14BA23F2", "ARC-Filter": "OpenARC Filter v1.0.0 sourceware.org 2EBB14BA23F2", "ARC-Seal": "i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1771296310; cv=none;\n b=gb/G/lgoA+ll9lQz+0KwZOITUWMtYGm4qF/gBiLy3pN6id6k6oSEPplkmdi2tsG6+D898mTgFe8539YAXR4g0Y+9qBj9nZbVtat5zxxbazlXJycQGsCm+RtFZzax22kOmVGeYxlRU5EiZFJAolBbhOEAtcBDs5gmtXom4ruu1GM=", "ARC-Message-Signature": "i=1; a=rsa-sha256; d=sourceware.org; s=key;\n t=1771296310; c=relaxed/simple;\n bh=j3wT3hRg7sRmtT3dyA1VwuAN7azME1ZumDbMPL1yvrw=;\n h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version;\n b=JzAI5PHjcklwttASEU0zakvR1IqAIlfJEmzERpZp3BiuF2eSjAGQWH6Ku7qENyn07Dg1XK7QOE7paHA/E94nWEzjhFF+NG2bwmQQaeUmv0P53tHE9kZtnm9+M2AskxI1Ht58rI+0E9hLEh0UhyIyBXcpp+rzQPW+9K4McxRICZo=", "ARC-Authentication-Results": "i=1; server2.sourceware.org", "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n s=mimecast20190719; t=1771296309;\n h=from:from:reply-to:subject:subject:date:date:message-id:message-id:\n to:to:cc:cc:mime-version:mime-version:content-type:content-type:\n content-transfer-encoding:content-transfer-encoding;\n bh=Ss8LeQoBQNaQKFPUwe83oX8kQ6MIEOYKN0W8HOJmOZg=;\n b=H+uXIkCTpj6vZExlmdXOpOVja022iWTJhUwSgD6NuO10NxSQ28HYvBDxHhMN+E01cRhAvf\n ZBHcIkhYLmWRveQJRytHkASJ/WzzSAXTXjWHQi9zGBo3jTo7wFkGGkXVfS1xmL3IQQgiYJ\n Eok/D4Ks/+SNf3dLb8fIzAttKz3tUA0=", "X-MC-Unique": "R1jeFmKdPkSD1v-hsikKWQ-1", "X-Mimecast-MFC-AGG-ID": "R1jeFmKdPkSD1v-hsikKWQ_1771296308", "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20230601; t=1771296307; x=1771901107;\n h=content-transfer-encoding:mime-version:message-id:date:subject:cc\n :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date\n :message-id:reply-to;\n bh=Ss8LeQoBQNaQKFPUwe83oX8kQ6MIEOYKN0W8HOJmOZg=;\n b=f8UUfdCjSbNcqcLWSENfo2TUiHu8S9KhhhX0DQeV/byAY3rK1JSADc4UXBAPZHNKRp\n B2oWLnuvk/6t5y1kaJp0QPAyvav7f1xb6252arziPuTIFaQcGOz877sZODJXa4xlSA2T\n 2yfg+PxV52PWRjWBnpRh1yT9O2vkPHZ/iO1V8poXNmOCqrHtyeeu11m/+HHO3mGoj1f4\n rBbvu9sr75QLjveKMq4zRQWdV3x61e/UrMt6Enc9XY8btw0jESrCURN7U8Z6x8NToNiQ\n HjCTs2ekbhHyMcPfLzZ9fjATDEeJKKgH1w7sqRNvqY0ITLqEkdUgPzMWGnOOpmxKaHER\n azLw==", "X-Gm-Message-State": "AOJu0Yzp+P9a0VXGdanbU1TS/SM2rdAu7ioQCOYExRwMhiNjmLGb0u7C\n Pdnb5Dp+RI92TyXiWZ8rc2xElfom2LR43yjTVRwyW4JFHL0XYDNejybsqRql4vm6sfZY70XN03A\n 43BOG42aavLY+79cyOfkiw2lqAD/ejjZsU/8R0D7qjQS63GfPg8Fph2NK4Ue9mSyHsX+l8KpwEC\n Zn3vv0womOkXHzE6vrzTbJwJeWdHoHiq2tZ2KXtNHn", "X-Gm-Gg": "AZuq6aKOW+EzZqYPsG6oyjVKIsWXixw5hqAkRcb4u/3oGmaQ71uu2yYc7nW71sV+R7D\n 34h6CWlAiEcLybqmTBhFQ3yta+QJsARM1oFKKQWpExqFk3iseLS3ZANStOXhKCKm2fIN8Rp/Cn7\n XD4/H9UNuX8yVT9PFwCQL6ws4VD82yBnDr1u1/eccyDj9swQtP1zFyzm1k60Mb5ve+96AQBUyhs\n SLFsdE5/37o7UyF09I2RIgWB627a8bsZc9Y4nR7NhMcYiwdSt5YlmU00PBA5oMgPQyk68p6yFME\n vpMSRlwkqa4HDfwVgYJjzqktFH4A6U2gDrfPV5v/gHGD+5U40EGpQWGQ7yYQfR+63Bcp31jRyDT\n 5An5FLtJKqG8=", "X-Received": [ "by 2002:a05:620a:2988:b0:8cb:3a1d:79fc with SMTP id\n af79cd13be357-8cb4080809amr1192825185a.2.1771296306963;\n Mon, 16 Feb 2026 18:45:06 -0800 (PST)", "by 2002:a05:620a:2988:b0:8cb:3a1d:79fc with SMTP id\n af79cd13be357-8cb4080809amr1192822785a.2.1771296306404;\n Mon, 16 Feb 2026 18:45:06 -0800 (PST)" ], "From": "Patrick Palka <ppalka@redhat.com>", "To": "gcc-patches@gcc.gnu.org", "Cc": "jason@redhat.com,\n\tPatrick Palka <ppalka@redhat.com>", "Subject": "[PATCH] c++: unifying LAMBDA_EXPR [PR122318]", "Date": "Mon, 16 Feb 2026 21:45:04 -0500", "Message-ID": "<20260217024504.1903147-1-ppalka@redhat.com>", "X-Mailer": "git-send-email 2.53.0.118.g852829b3dd", "MIME-Version": "1.0", "X-Mimecast-Spam-Score": "0", "X-Mimecast-MFC-PROC-ID": "Y1V3jaq22-13PWw6Hl6ZQqpB1dDndat6p1zVf1Py4rU_1771296308", "X-Mimecast-Originator": "redhat.com", "Content-Transfer-Encoding": "8bit", "content-type": "text/plain; charset=\"US-ASCII\"; x-default=true", "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": "Bootstrapped and regtested on x86_64-pc-linux-gnu, does this look\nOK for trunk/15/14?\n\n-- >8 --\n\nThis patch makes the default case of unify accept LAMBDA_EXPR P/A pairs,\nwhich we can legitimately hit during alias CTAD guide overload resolution.\nWe can also less legimitately hit this during partial specialization\nmatching (likely IFNDR).\n\n\tPR c++/122318\n\tPR c++/101670\n\ngcc/cp/ChangeLog:\n\n\t* pt.cc (unify) <default>: Handle LAMBDA_EXPR.\n\ngcc/testsuite/ChangeLog:\n\n\t* g++.dg/cpp2a/class-deduction-alias27.C: New test.\n---\n gcc/cp/pt.cc | 1 +\n gcc/testsuite/g++.dg/cpp2a/lambda-targ20.C | 14 ++++++++++++++\n gcc/testsuite/g++.dg/cpp2a/lambda-targ21.C | 10 ++++++++++\n 3 files changed, 25 insertions(+)\n create mode 100644 gcc/testsuite/g++.dg/cpp2a/lambda-targ20.C\n create mode 100644 gcc/testsuite/g++.dg/cpp2a/lambda-targ21.C", "diff": "diff --git a/gcc/cp/pt.cc b/gcc/cp/pt.cc\nindex 1d11b07d567d..5db46cd707f1 100644\n--- a/gcc/cp/pt.cc\n+++ b/gcc/cp/pt.cc\n@@ -26650,6 +26650,7 @@ unify (tree tparms, tree targs, tree parm, tree arg, int strict,\n \treturn unify_success (explain_p);\n gcc_assert (EXPR_P (parm)\n \t\t || TREE_CODE (parm) == CONSTRUCTOR\n+\t\t || TREE_CODE (parm) == LAMBDA_EXPR\n \t\t || TREE_CODE (parm) == TRAIT_EXPR);\n expr:\n /* We must be looking at an expression. This can happen with\ndiff --git a/gcc/testsuite/g++.dg/cpp2a/lambda-targ20.C b/gcc/testsuite/g++.dg/cpp2a/lambda-targ20.C\nnew file mode 100644\nindex 000000000000..4d444bbe1121\n--- /dev/null\n+++ b/gcc/testsuite/g++.dg/cpp2a/lambda-targ20.C\n@@ -0,0 +1,14 @@\n+// PR c++/122318\n+// { dg-do compile { target c++20 } }\n+\n+template<class T, auto V>\n+struct A {\n+ A() { }\n+ A(T) { }\n+};\n+\n+template<class T>\n+using AT = A<T, []{}>;\n+\n+AT<int> a;\n+AT b = a;\ndiff --git a/gcc/testsuite/g++.dg/cpp2a/lambda-targ21.C b/gcc/testsuite/g++.dg/cpp2a/lambda-targ21.C\nnew file mode 100644\nindex 000000000000..73656422333f\n--- /dev/null\n+++ b/gcc/testsuite/g++.dg/cpp2a/lambda-targ21.C\n@@ -0,0 +1,10 @@\n+// PR c++/101670\n+// { dg-do compile { target c++20 } }\n+\n+template<int, auto = []{}>\n+struct A;\n+\n+template<int N>\n+struct A<N> { }; // Partial specialization unusable due to lambda uniqueness\n+\n+A<0> a; // { dg-error \"incomplete\" }\n", "prefixes": [] }