get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/1.1/patches/2219704/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 2219704,
    "url": "http://patchwork.ozlabs.org/api/1.1/patches/2219704/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/gcc/patch/d8e057bb-5514-406c-9a53-2d1b7b60cb05@gmx.de/",
    "project": {
        "id": 17,
        "url": "http://patchwork.ozlabs.org/api/1.1/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": "<d8e057bb-5514-406c-9a53-2d1b7b60cb05@gmx.de>",
    "date": "2026-04-03T20:53:25",
    "name": "Fortran: fix resolution of generic interface with TYPE(C_PTR) [PR66973]",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "5e64ee83e6d6f3493a8d4cd8975940d80c6ddb10",
    "submitter": {
        "id": 21263,
        "url": "http://patchwork.ozlabs.org/api/1.1/people/21263/?format=api",
        "name": "Harald Anlauf",
        "email": "anlauf@gmx.de"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/gcc/patch/d8e057bb-5514-406c-9a53-2d1b7b60cb05@gmx.de/mbox/",
    "series": [
        {
            "id": 498677,
            "url": "http://patchwork.ozlabs.org/api/1.1/series/498677/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/gcc/list/?series=498677",
            "date": "2026-04-03T20:53:25",
            "name": "Fortran: fix resolution of generic interface with TYPE(C_PTR) [PR66973]",
            "version": 1,
            "mbox": "http://patchwork.ozlabs.org/series/498677/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/2219704/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/2219704/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 (2048-bit key;\n secure) header.d=gmx.de header.i=anlauf@gmx.de header.a=rsa-sha256\n header.s=s31663417 header.b=T48NoYmC;\n\tdkim-atps=neutral",
            "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org\n (client-ip=2620:52:6:3111::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=gmx.de header.i=anlauf@gmx.de header.a=rsa-sha256\n header.s=s31663417 header.b=T48NoYmC",
            "sourceware.org;\n dmarc=pass (p=quarantine dis=none) header.from=gmx.de",
            "sourceware.org; spf=pass smtp.mailfrom=gmx.de",
            "server2.sourceware.org;\n arc=none smtp.remote-ip=212.227.17.22"
        ],
        "Received": [
            "from vm01.sourceware.org (vm01.sourceware.org\n [IPv6:2620:52:6:3111::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 4fnWD50qztz1yD3\n\tfor <incoming@patchwork.ozlabs.org>; Sat, 04 Apr 2026 07:53:57 +1100 (AEDT)",
            "from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id 0A8004BA23F9\n\tfor <incoming@patchwork.ozlabs.org>; Fri,  3 Apr 2026 20:53:55 +0000 (GMT)",
            "from mout.gmx.net (mout.gmx.net [212.227.17.22])\n by sourceware.org (Postfix) with ESMTPS id D09DA4BA23FF;\n Fri,  3 Apr 2026 20:53:27 +0000 (GMT)",
            "from client.hidden.invalid by mail.gmx.net (mrgmx105\n [212.227.17.168]) with ESMTPSA (Nemesis) id 1MSKy8-1w2Bw61ryK-00W3Qq; Fri, 03\n Apr 2026 22:53:26 +0200"
        ],
        "DKIM-Filter": [
            "OpenDKIM Filter v2.11.0 sourceware.org 0A8004BA23F9",
            "OpenDKIM Filter v2.11.0 sourceware.org D09DA4BA23FF"
        ],
        "DMARC-Filter": "OpenDMARC Filter v1.4.2 sourceware.org D09DA4BA23FF",
        "ARC-Filter": "OpenARC Filter v1.0.0 sourceware.org D09DA4BA23FF",
        "ARC-Seal": "i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1775249608; cv=none;\n b=Hty5vHH0uA7kML+Ev9e8IgK+xKVvqmftnhcIDYDuLOjM4rCyyIcxZ8AJh8ExstsTKdpVv2a8lp0wwoMiAbuZMF/PvxEKFX59erlwCB75Se6WzQ1Zln5tXUSUTRLbdYBL/dFuAsfHyWHehMNBkI7YeqrkgepZbzy3jA89fC0ODcM=",
        "ARC-Message-Signature": "i=1; a=rsa-sha256; d=sourceware.org; s=key;\n t=1775249608; c=relaxed/simple;\n bh=hQh2jD/j/cB6hKC8f0Bj+XKhbdyeC1EYcjkwOmbFEh8=;\n h=DKIM-Signature:Message-ID:Date:MIME-Version:From:Subject;\n b=lRbcfO9psI5/45CABwClY7XhP1E81d8bKaIMJ1z++bcEV40UDkJuHTsfeIgVQCv21LHNBCJUP75MEm/RJfS5XoDFn637jG1TWrIBJ5x6kuHEV9uBFPlpPIam3t6Ve/67QN8Hv4uvMDz+vGYMEe/zfhT0fBclRQyxkRLNiVooK7c=",
        "ARC-Authentication-Results": "i=1; server2.sourceware.org",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.de;\n s=s31663417; t=1775249606; x=1775854406; i=anlauf@gmx.de;\n bh=Dh2O59kI76oIYKCYltfK5AR/V4ej40ayC7bwu/S1BRA=;\n h=X-UI-Sender-Class:Content-Type:Message-ID:Date:MIME-Version:Cc:\n From:Subject:cc:content-transfer-encoding:content-type:date:from:\n message-id:mime-version:reply-to:subject:to;\n b=T48NoYmCm7ck3s/7+TBpsS9qlWw5XBEZFjsWqu2XDxLY5VkcfGotjElZhWlSwSpn\n 1Rv0uvywV6cxZSVcCL3DLYUVoD/vKFKC3YdPz+x5ss/IdYWFew4MCZvuieeeZwT1g\n M0QlwNAuHL2NNX6HbcMViSNyUg+EHQtmkmXrOp565sdhQw4oHMybaYeb2wAO5g+T4\n GAPgpDw9C2vZ1rlrcSegJrGoykkdgDCDVwnlU0Rq/GOtPwV5s+wouyQQrOvqkOcx0\n Or07TNRuzuFAbEPM6Jx15MkNEwCnBz99UmMLbHZce5/KhbgBEslv8UERdfGOdwyiy\n wEhz0v8l3BiY4Sh5lA==",
        "X-UI-Sender-Class": "724b4f7f-cbec-4199-ad4e-598c01a50d3a",
        "Content-Type": "multipart/mixed; boundary=\"------------qkxxjn8h8jcBIwY8Ih0YjKgd\"",
        "Message-ID": "<d8e057bb-5514-406c-9a53-2d1b7b60cb05@gmx.de>",
        "Date": "Fri, 3 Apr 2026 22:53:25 +0200",
        "MIME-Version": "1.0",
        "User-Agent": "Mozilla Thunderbird",
        "Newsgroups": "gmane.comp.gcc.fortran,gmane.comp.gcc.patches",
        "Content-Language": "en-US",
        "Cc": "fortran <fortran@gcc.gnu.org>, gcc-patches <gcc-patches@gcc.gnu.org>",
        "From": "Harald Anlauf <anlauf@gmx.de>",
        "Subject": "[PATCH] Fortran: fix resolution of generic interface with TYPE(C_PTR)\n [PR66973]",
        "X-Provags-ID": "V03:K1:N5qV616ZIeiM+YsMX2TNzN1TT/kG97ccV0K54ajpQGwWXZp/sbZ\n IusL4BmJ0JpN/X6ZXgArshIzVmDitiy/uTz3uFsrxE2EDRU9DEhEOATV2jmEJa+qpkbmGIh\n ILfFgsOwNGNEMI9xH3xpxC78Uez/7C4oX6rfKhG5iKCK6MO6JE3N+Hx14bsaj0kSV/w/jfP\n smRku+uSG5NLK2Ufn2L3Q==",
        "UI-OutboundReport": "notjunk:1;M01:P0:D0v62FYi2tM=;hCJnIm83doG8wJZmU8vmP0dDk/i\n 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\n ReVMN0r8DMnQKtViF4P5IJCQ==",
        "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": "Dear all,\n\nthis patch fixes a long-standing issue where we did not properly\nresolve a generic interface when C_LOC or C_FUNLOC were involved.\nSee testcase and PR for details.\n\n(The testcase is an enhanced version of the reporter's.)\n\nRegtested on x86_64-pc-linux-gnu.  OK for mainline?\n\nI'd like to backport this also to 15-branch unless there are\nobjections.\n\nThanks,\nHarald",
    "diff": "From 8398accffc65e825587acd4e74704dc190cf23cd Mon Sep 17 00:00:00 2001\nFrom: Harald Anlauf <anlauf@gmx.de>\nDate: Fri, 3 Apr 2026 22:35:48 +0200\nSubject: [PATCH] Fortran: fix resolution of generic interface with TYPE(C_PTR)\n [PR66973]\n\nWhen symbols from the intrinsic module ISO_C_BINDING were USEd indirectly,\nthe resolution of generic interfaces with procedures having dummies with\nTYPE(C_PTR) or TYPE(C_FUNPTR) could fail when the actual argument was\nC_LOC() or C_FUNLOC().  Amend checking of actual versus formal procedure\narguments to these cases.\n\n\tPR fortran/66973\n\ngcc/fortran/ChangeLog:\n\n\t* interface.cc (gfc_compare_actual_formal): Check that C_LOC and\n\tC_FUNLOC from ISO_C_BINDING as actual argument are passed to a\n\tdummy argument of matching type C_PTR/C_FUNPTR.\n\ngcc/testsuite/ChangeLog:\n\n\t* gfortran.dg/generic_36-1.f90: New test.\n\t* gfortran.dg/generic_36-2.f90: New test.\n---\n gcc/fortran/interface.cc                   | 22 +++++++\n gcc/testsuite/gfortran.dg/generic_36-1.f90 | 68 ++++++++++++++++++++++\n gcc/testsuite/gfortran.dg/generic_36-2.f90 | 36 ++++++++++++\n 3 files changed, 126 insertions(+)\n create mode 100644 gcc/testsuite/gfortran.dg/generic_36-1.f90\n create mode 100644 gcc/testsuite/gfortran.dg/generic_36-2.f90\n\ndiff --git a/gcc/fortran/interface.cc b/gcc/fortran/interface.cc\nindex 8a19c14aa78..1cfa4975f16 100644\n--- a/gcc/fortran/interface.cc\n+++ b/gcc/fortran/interface.cc\n@@ -4127,6 +4127,28 @@ gfc_compare_actual_formal (gfc_actual_arglist **ap, gfc_formal_arglist *formal,\n \t  goto match;\n \t}\n \n+      /* C_LOC/C_FUNLOC from ISO_C_BINDING as actual argument can only be\n+\t passed to a dummy argument of matching type C_PTR/C_FUNPTR.  */\n+      if (a->expr->expr_type == EXPR_FUNCTION\n+\t  && a->expr->ts.type == BT_VOID\n+\t  && a->expr->symtree->n.sym\n+\t  && a->expr->symtree->n.sym->from_intmod == INTMOD_ISO_C_BINDING\n+\t  && (f->sym->ts.type != BT_DERIVED\n+\t      || f->sym->ts.u.derived->from_intmod != INTMOD_ISO_C_BINDING\n+\t      || !((a->expr->symtree->n.sym->intmod_sym_id == ISOCBINDING_FUNLOC\n+\t\t    && f->sym->ts.u.derived->intmod_sym_id == ISOCBINDING_FUNPTR)\n+\t\t   || (a->expr->symtree->n.sym->intmod_sym_id == ISOCBINDING_LOC\n+\t\t       && f->sym->ts.u.derived->intmod_sym_id == ISOCBINDING_PTR))))\n+\t{\n+\t  if (where)\n+\t    gfc_error (\"ISO_C_BINDING function actual argument at %L \"\n+\t\t       \"requires dummy argument %qs to have a matching \"\n+\t\t       \"type from ISO_C_BINDING\",\n+\t\t       &a->expr->where,f->sym->name);\n+\t  ok = false;\n+\t  goto match;\n+\t}\n+\n     match:\n       if (a == actual)\n \tna = i;\ndiff --git a/gcc/testsuite/gfortran.dg/generic_36-1.f90 b/gcc/testsuite/gfortran.dg/generic_36-1.f90\nnew file mode 100644\nindex 00000000000..d54483f473c\n--- /dev/null\n+++ b/gcc/testsuite/gfortran.dg/generic_36-1.f90\n@@ -0,0 +1,68 @@\n+! { dg-do compile }\n+!\n+! PR fortran/66973 - resolution of generic interface with TYPE(C_PTR)\n+\n+MODULE H5T\n+  USE ISO_C_BINDING, only: C_LOC,    C_PTR,    C_NULL_PTR, &\n+                           C_FUNLOC, C_FUNPTR, C_NULL_FUNPTR\n+  IMPLICIT NONE\n+  public :: pickone, cnt, test1\n+  public :: C_LOC, C_PTR, C_NULL_PTR, C_FUNLOC, C_FUNPTR, C_NULL_FUNPTR\n+  private\n+\n+  INTERFACE pickone\n+     MODULE PROCEDURE pick_f03    ! order matters for the test!\n+     MODULE PROCEDURE pick_funptr\n+     MODULE PROCEDURE pick_f90\n+  END INTERFACE\n+\n+  integer :: cnt(3) = 0\n+\n+CONTAINS\n+\n+  SUBROUTINE pick_f90(int_value)\n+    IMPLICIT NONE\n+    INTEGER, INTENT(IN) :: int_value\n+    PRINT*,'Inside pick_f90'\n+    cnt(1) = cnt(1) + 1\n+  END SUBROUTINE pick_f90\n+\n+  SUBROUTINE pick_f03(value)\n+    IMPLICIT NONE\n+    TYPE(C_PTR), INTENT(IN) :: value\n+    PRINT*,'Inside pick_f03'\n+    cnt(2) = cnt(2) + 1\n+  END SUBROUTINE pick_f03\n+\n+  SUBROUTINE pick_funptr(addr)\n+    IMPLICIT NONE\n+    TYPE(C_FUNPTR), INTENT(IN) :: addr\n+    PRINT*,'Inside pick_funptr'\n+    cnt(3) = cnt(3) + 1\n+  END SUBROUTINE pick_funptr\n+\n+  subroutine test1 ()\n+    integer      :: intval\n+    REAL, TARGET :: val\n+    type(c_ptr)  :: ptr\n+    type(c_funptr) :: funptr\n+    procedure(), pointer :: indirect => null()\n+    cnt = 0\n+    CALL pickone(intval)\n+!   print *, cnt\n+    if (any (cnt /= [1,0,0])) stop 1\n+    cnt = 0\n+    CALL pickone(ptr)\n+    CALL pickone(c_null_ptr)\n+    CALL pickone(C_LOC(val))\n+!   print *, cnt\n+    if (any (cnt /= [0,3,0])) stop 2\n+    cnt = 0\n+    CALL pickone(funptr)\n+    CALL pickone(c_null_funptr)\n+    CALL pickone(C_FUNLOC(indirect))\n+!   print *, cnt\n+    if (any (cnt /= [0,0,3])) stop 3\n+  end subroutine test1\n+\n+END MODULE H5T\ndiff --git a/gcc/testsuite/gfortran.dg/generic_36-2.f90 b/gcc/testsuite/gfortran.dg/generic_36-2.f90\nnew file mode 100644\nindex 00000000000..1467ae6edf2\n--- /dev/null\n+++ b/gcc/testsuite/gfortran.dg/generic_36-2.f90\n@@ -0,0 +1,36 @@\n+! { dg-do run }\n+! { dg-compile-aux-modules \"generic_36-1.f90\" }\n+! { dg-additional-sources generic_36-1.f90 }\n+! { dg-additional-options \"-O2\" }\n+!\n+! PR fortran/66973 - resolution of generic interface with TYPE(C_PTR)\n+\n+PROGRAM main\n+  USE H5T, only: pickone, cnt, test1,            &\n+                 c_loc, c_ptr, c_null_ptr,       &\n+                 c_funloc, c_funptr, c_null_funptr\n+  IMPLICIT NONE\n+  integer      :: intval\n+  REAL, TARGET :: val\n+  type(c_ptr)  :: ptr\n+  type(c_funptr) :: funptr\n+  procedure(), pointer :: indirect => null()\n+  cnt = 0\n+  call test1\n+  cnt = 0\n+  CALL pickone(intval)\n+! print *, cnt\n+  if (any (cnt /= [1,0,0])) stop 11\n+  cnt = 0\n+  CALL pickone(ptr)\n+  CALL pickone(c_null_ptr)\n+  CALL pickone(C_LOC(val))\n+! print *, cnt\n+  if (any (cnt /= [0,3,0])) stop 12\n+  cnt = 0\n+  CALL pickone(funptr)\n+  CALL pickone(c_null_funptr)\n+  CALL pickone(C_FUNLOC(indirect))\n+! print *, cnt\n+  if (any (cnt /= [0,0,3])) stop 13\n+END PROGRAM main\n-- \n2.51.0\n\n",
    "prefixes": []
}