Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/2231111/?format=api
{ "id": 2231111, "url": "http://patchwork.ozlabs.org/api/patches/2231111/?format=api", "web_url": "http://patchwork.ozlabs.org/project/gcc/patch/5059494.PYKUYFuaPT@fomalhaut/", "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": "<5059494.PYKUYFuaPT@fomalhaut>", "list_archive_url": null, "date": "2026-04-30T11:07:19", "name": "[Ada] Fix spurious error on primitive function of tagged task type", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "2a058a1b3299928d3df77ea3b98166a01245d8e0", "submitter": { "id": 78832, "url": "http://patchwork.ozlabs.org/api/people/78832/?format=api", "name": "Eric Botcazou", "email": "botcazou@adacore.com" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/gcc/patch/5059494.PYKUYFuaPT@fomalhaut/mbox/", "series": [ { "id": 502280, "url": "http://patchwork.ozlabs.org/api/series/502280/?format=api", "web_url": "http://patchwork.ozlabs.org/project/gcc/list/?series=502280", "date": "2026-04-30T11:07:19", "name": "[Ada] Fix spurious error on primitive function of tagged task type", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/502280/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2231111/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2231111/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 (2048-bit key;\n secure) header.d=adacore.com header.i=@adacore.com header.a=rsa-sha256\n header.s=google header.b=WHDolerI;\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 (2048-bit key,\n secure) header.d=adacore.com header.i=@adacore.com header.a=rsa-sha256\n header.s=google header.b=WHDolerI", "sourceware.org; dmarc=pass (p=quarantine dis=none)\n header.from=adacore.com", "sourceware.org; spf=pass smtp.mailfrom=adacore.com", "server2.sourceware.org;\n arc=none smtp.remote-ip=209.85.128.54" ], "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 4g5rxM27Ztz1yGq\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 30 Apr 2026 21:07:51 +1000 (AEST)", "from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id 74F064371D7E\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 30 Apr 2026 11:07:49 +0000 (GMT)", "from mail-wm1-f54.google.com (mail-wm1-f54.google.com\n [209.85.128.54])\n by sourceware.org (Postfix) with ESMTPS id 258B64BABF35\n for <gcc-patches@gcc.gnu.org>; Thu, 30 Apr 2026 11:07:22 +0000 (GMT)", "by mail-wm1-f54.google.com with SMTP id\n 5b1f17b1804b1-488b0046078so6901045e9.1\n for <gcc-patches@gcc.gnu.org>; Thu, 30 Apr 2026 04:07:22 -0700 (PDT)", "from fomalhaut.localnet ([2a01:e0a:107c:2f10:e654:e8ff:fe8f:2ce6])\n by smtp.gmail.com with ESMTPSA id\n 5b1f17b1804b1-48a82308d77sm66061765e9.14.2026.04.30.04.07.20\n for <gcc-patches@gcc.gnu.org>\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Thu, 30 Apr 2026 04:07:20 -0700 (PDT)" ], "DKIM-Filter": [ "OpenDKIM Filter v2.11.0 sourceware.org 74F064371D7E", "OpenDKIM Filter v2.11.0 sourceware.org 258B64BABF35" ], "DMARC-Filter": "OpenDMARC Filter v1.4.2 sourceware.org 258B64BABF35", "ARC-Filter": "OpenARC Filter v1.0.0 sourceware.org 258B64BABF35", "ARC-Seal": "i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1777547242; cv=none;\n b=uw2sMj52HyH79DiavYxkW2IpNQbtEWTVyzw2/pgoQ85KuPX2CTd7OrQo42hkaTO9sCVYo+84Ik6VRrvMIBFuvL+EgxKolvtCmyURu8hN+kfu8Q04lXEdGzVKiiAvVHwHe82woUyNuyiFFayucnGx5N4W8RNFCZpiR4THeetfdoo=", "ARC-Message-Signature": "i=1; a=rsa-sha256; d=sourceware.org; s=key;\n t=1777547242; c=relaxed/simple;\n bh=wIEd/S1wPyGlrDgKVUNjd9ObbDIFbodC22g7jfgVrmw=;\n h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version;\n b=BcrJl7HOx+anDxBMNAIizI34NLuRymtzoFL3bhj4FhksjmVyGzXv0raLyerkNRVppGwcywX1YgQAxMkSaGgAnEjJ3JzbRsU5ARqNzCd/wmzkmVJbwiZ3zdFJSWbbB1Vl8vtT8r82AP1L7ohhxDl1dZdMhjXOIcVko0fHL39ClU4=", "ARC-Authentication-Results": "i=1; server2.sourceware.org", "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=adacore.com; s=google; t=1777547241; x=1778152041; darn=gcc.gnu.org;\n h=content-transfer-encoding:mime-version:message-id:date:subject:to\n :from:from:to:cc:subject:date:message-id:reply-to;\n bh=LTDXE9VWlHX6XPZDohy1fJcXzS7hnQBmy8Z1sd52tfI=;\n b=WHDolerIDyx+zaJ71HZH/TBc70p7dBZuprwSWOFF42qAzy6rsy2ouBiEaPtq4d4us4\n adwbT/u7IXlc2b3zhN1StpJPz/hLbQAmYNe/S3k+7ZxdnOvsPhW0BfdmsGFkB0oIdVZ+\n nPMrVCa3SUCXhUSKpVHiOz2p2JfAsrg8gdCOGtmEmrAuM90QGvhqZwNKMLtAu4ACMerV\n O8jD1ULk0x4ntPX4lnmGoqOZ6fjl/2Xkaif1IpHpXFefrGeJgpIXgj4GrT3zE17ncsEz\n +COqZPe+KZgV8j91DuOqfLaWz3yNbDk/QZswg5a8sbGqfFxXEwvnwPT7PJmdcEdgoUY5\n g+QA==", "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1777547241; x=1778152041;\n h=content-transfer-encoding:mime-version:message-id:date:subject:to\n :from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id\n :reply-to;\n bh=LTDXE9VWlHX6XPZDohy1fJcXzS7hnQBmy8Z1sd52tfI=;\n b=QSZ9t0g+/g3u8aclPzNn+FfG+f8Qq9kH8Q+JROC2HKQjrCiStNClLZSR8LvFSF/2+z\n DfzT26hEI3S6ZoHSf3IC2x6Ed0XsrrTxvB+2Mm6Hc8ygyvvjJtKGRQM+ckAcQqaXFoGF\n j/sI6ESd+mlqrby9hlQQGtgsWOtMZTCbn4UJW13otvvmz/hrkwewOBwdMIduSDmRMk3S\n 9QvhM75fdZdjRzr6leLucYgOuUTz8CTJcQJ6bHz8SAdwFhtHTXgzO8RFe58NX8G64aJv\n mktT3JKDL5Nz2sheSjkmPL0vqLsb0WCdykKhKf4Graocz+SqYrdmJ1WtZcqf4+R7t3yQ\n WRVg==", "X-Gm-Message-State": "AOJu0YwOvD5eeOofsbvjn+BtHkqcnCQVgRjwK4UuAMROWd5tL1NNdwWi\n SVOK9magyF3OVlmIZkdnn48Z/PRuAD3aHmQIA+yCLCnUAQhU1kSnFtDlMCLVGY3xSCpOnJBeniB\n G8CA=", "X-Gm-Gg": "AeBDietRy3gIK5OdK/nqfOAAtQL2L09ffBV/A7mbygQdlv1TxVXwDEuYjD/pwL08eQj\n kkcJn4UQjdAjZO4SSnPvTLroGYh+sd3gXiDODeVg0ca3Wlna1JILriQvKiNgeSYM/KNS+px69Ht\n HeHJ+OKjUPa30qZitk/AT9zJ7x3MX5Y0bV2ZEjGeqUE0jJObEeZqBLz2KFIs0OH3WQFdvejBesC\n 1lpzYf3+X3i5rnH20l1xym/5emECbmOGiXhKdLha7nueNaChCLhNCmtOjY1PsNCR0uoOEKptGTW\n NpxFCReopcNv59nLv+LVzXFWaRIw9eOADHJAVDcva8jaodQl34XBp+oJDjBaeNl98ao0Ii4j/U9\n Gt4miW7eyMK/0gGC5AD29gkpjLYayota0RQLk2ZyFeg9oANt36DBljE4wLojDc2UW+jumTvppAH\n vnR5jz+ja3hyh3yuuTpvqcZyQ8Xn9jbFgqcOTtMLDyT+nhQdg=", "X-Received": "by 2002:a05:600d:b:b0:488:c078:bfda with SMTP id\n 5b1f17b1804b1-48a84456abfmr33028615e9.26.1777547240909;\n Thu, 30 Apr 2026 04:07:20 -0700 (PDT)", "From": "Eric Botcazou <botcazou@adacore.com>", "X-Google-Original-From": "Eric Botcazou <ebotcazou@adacore.com>", "To": "gcc-patches@gcc.gnu.org", "Subject": "[Ada] Fix spurious error on primitive function of tagged task type", "Date": "Thu, 30 Apr 2026 13:07:19 +0200", "Message-ID": "<5059494.PYKUYFuaPT@fomalhaut>", "MIME-Version": "1.0", "Content-Type": "multipart/mixed; boundary=\"nextPart26110717.EfDdHjke4D\"", "Content-Transfer-Encoding": "7Bit", "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 comes from an internal confusion about the subtype of the controlling \nresult. This has probably never worked, but the fix is trivial.\n\nTested on x86-64/Linux, applied on mainline, 16, 15 and 14 branches.\n\n\n2026-04-30 Eric Botcazou <ebotcazou@adacore.com>\n \n\tPR ada/125044\n\t* sem_disp.adb (Check_Controlling_Formals): Apply the same\n\tmassaging to the result subtype as to the parameter subtypes.\n\n\n2026-04-30 Eric Botcazou <ebotcazou@adacore.com>\n \n\t* gnat.dg/task6.ads, gnat.dg/task6.adb: New test.", "diff": "diff --git a/gcc/ada/sem_disp.adb b/gcc/ada/sem_disp.adb\nindex 36699e237f0..ff606c7cfa7 100644\n--- a/gcc/ada/sem_disp.adb\n+++ b/gcc/ada/sem_disp.adb\n@@ -336,9 +336,7 @@ package body Sem_Disp is\n end if;\n \n if Present (Ctrl_Type) then\n-\n- -- Obtain the full type in case we are looking at an incomplete\n- -- view.\n+ -- Use the full view for an incomplete type\n \n if Ekind (Ctrl_Type) = E_Incomplete_Type\n and then Present (Full_View (Ctrl_Type))\n@@ -346,8 +344,7 @@ package body Sem_Disp is\n Ctrl_Type := Full_View (Ctrl_Type);\n end if;\n \n- -- When controlling type is concurrent and declared within a\n- -- generic or inside an instance use corresponding record type.\n+ -- Use the corresponding record type for a concurrent type\n \n if Is_Concurrent_Type (Ctrl_Type)\n and then Present (Corresponding_Record_Type (Ctrl_Type))\n@@ -439,6 +436,22 @@ package body Sem_Disp is\n Ctrl_Type := Check_Controlling_Type (Etype (Subp), Subp);\n \n if Present (Ctrl_Type) then\n+ -- Use the full view for an incomplete type\n+\n+ if Ekind (Ctrl_Type) = E_Incomplete_Type\n+ and then Present (Full_View (Ctrl_Type))\n+ then\n+ Ctrl_Type := Full_View (Ctrl_Type);\n+ end if;\n+\n+ -- Use the corresponding record type for a concurrent type\n+\n+ if Is_Concurrent_Type (Ctrl_Type)\n+ and then Present (Corresponding_Record_Type (Ctrl_Type))\n+ then\n+ Ctrl_Type := Corresponding_Record_Type (Ctrl_Type);\n+ end if;\n+\n if Ctrl_Type = Typ then\n Set_Has_Controlling_Result (Subp);\n \n", "prefixes": [ "Ada" ] }