get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 2216480,
    "url": "http://patchwork.ozlabs.org/api/patches/2216480/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/gcc/patch/20260326152433.57A6F4A0A3@imap1.dmz-prg2.suse.org/",
    "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": "<20260326152433.57A6F4A0A3@imap1.dmz-prg2.suse.org>",
    "list_archive_url": null,
    "date": "2026-03-26T15:24:17",
    "name": "debug/124644 - duplicate DW_AT_artificial attribute",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "df64f083a9a3450478e2e455827be1dcda426999",
    "submitter": {
        "id": 4338,
        "url": "http://patchwork.ozlabs.org/api/people/4338/?format=api",
        "name": "Richard Biener",
        "email": "rguenther@suse.de"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/gcc/patch/20260326152433.57A6F4A0A3@imap1.dmz-prg2.suse.org/mbox/",
    "series": [
        {
            "id": 497607,
            "url": "http://patchwork.ozlabs.org/api/series/497607/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/gcc/list/?series=497607",
            "date": "2026-03-26T15:24:17",
            "name": "debug/124644 - duplicate DW_AT_artificial attribute",
            "version": 1,
            "mbox": "http://patchwork.ozlabs.org/series/497607/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/2216480/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/2216480/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=suse.de header.i=@suse.de header.a=rsa-sha256\n header.s=susede2_rsa header.b=XjPCHyIQ;\n\tdkim=pass header.d=suse.de header.i=@suse.de header.a=ed25519-sha256\n header.s=susede2_ed25519 header.b=sk4/Nszk;\n\tdkim=pass (1024-bit key) header.d=suse.de header.i=@suse.de\n header.a=rsa-sha256 header.s=susede2_rsa header.b=XjPCHyIQ;\n\tdkim=neutral header.d=suse.de header.i=@suse.de header.a=ed25519-sha256\n header.s=susede2_ed25519 header.b=sk4/Nszk;\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 (1024-bit key,\n unprotected) header.d=suse.de header.i=@suse.de header.a=rsa-sha256\n header.s=susede2_rsa header.b=XjPCHyIQ;\n\tdkim=pass header.d=suse.de header.i=@suse.de header.a=ed25519-sha256\n header.s=susede2_ed25519 header.b=sk4/Nszk;\n\tdkim=pass (1024-bit key) header.d=suse.de header.i=@suse.de\n header.a=rsa-sha256 header.s=susede2_rsa header.b=XjPCHyIQ;\n\tdkim=neutral header.d=suse.de header.i=@suse.de header.a=ed25519-sha256\n header.s=susede2_ed25519 header.b=sk4/Nszk",
            "sourceware.org;\n dmarc=pass (p=none dis=none) header.from=suse.de",
            "sourceware.org; spf=pass smtp.mailfrom=suse.de",
            "server2.sourceware.org;\n arc=none smtp.remote-ip=195.135.223.130",
            "smtp-out1.suse.de;\n\tnone"
        ],
        "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 4fhSJm4qmYz1y1G\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 27 Mar 2026 02:25:27 +1100 (AEDT)",
            "from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id 382204B9DB78\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 26 Mar 2026 15:25:25 +0000 (GMT)",
            "from smtp-out1.suse.de (smtp-out1.suse.de [195.135.223.130])\n by sourceware.org (Postfix) with ESMTPS id 836744B9DB56\n for <gcc-patches@gcc.gnu.org>; Thu, 26 Mar 2026 15:24:34 +0000 (GMT)",
            "from imap1.dmz-prg2.suse.org (unknown [10.150.64.97])\n (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest\n SHA256)\n (No client certificate requested)\n by smtp-out1.suse.de (Postfix) with ESMTPS id 762454D2C9\n for <gcc-patches@gcc.gnu.org>; Thu, 26 Mar 2026 15:24:33 +0000 (UTC)",
            "from imap1.dmz-prg2.suse.org (localhost [127.0.0.1])\n (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest\n SHA256)\n (No client certificate requested)\n by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 57A6F4A0A3\n for <gcc-patches@gcc.gnu.org>; Thu, 26 Mar 2026 15:24:33 +0000 (UTC)",
            "from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])\n by imap1.dmz-prg2.suse.org with ESMTPSA id ZkNOE7FPxWmxXQAAD6G6ig\n (envelope-from <rguenther@suse.de>)\n for <gcc-patches@gcc.gnu.org>; Thu, 26 Mar 2026 15:24:33 +0000"
        ],
        "DKIM-Filter": [
            "OpenDKIM Filter v2.11.0 sourceware.org 382204B9DB78",
            "OpenDKIM Filter v2.11.0 sourceware.org 836744B9DB56"
        ],
        "DMARC-Filter": "OpenDMARC Filter v1.4.2 sourceware.org 836744B9DB56",
        "ARC-Filter": "OpenARC Filter v1.0.0 sourceware.org 836744B9DB56",
        "ARC-Seal": "i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1774538674; cv=none;\n b=W/25tcE5TVk4ScHpX+t8uhx8bz4jLwPI5ETMaMwZ9SnlOo5wK2MBURNai4YQ5bytZxAOHbJO5v9YHt8lqxQJMya6NL2Qn+jYKKpjjGvGpT74FMfO//g3GQLoekqpSE6tTkx4i4MrsPzBDFBON5MdioMan4EWmmTHwQ9TYznlJIc=",
        "ARC-Message-Signature": "i=1; a=rsa-sha256; d=sourceware.org; s=key;\n t=1774538674; c=relaxed/simple;\n bh=ts0SRUfqgzg96EaBC2SJLuyOz4zS2J8f62ilAj60VgY=;\n h=DKIM-Signature:DKIM-Signature:DKIM-Signature:DKIM-Signature:Date:\n From:To:Subject:MIME-Version:Message-Id;\n b=cAYh42rL7MTM7Un0LUuS5ty4EyjXhfjiPtLfINRdMpiObLEt5ocVpHeduOarYhbpU3nRlu4TZqG/sgFz3aUKLNI1OkXZG98mivmxIbH/ZE1cZm6M5Qjjv2uCNuVfZDf5Ihv/dZZvsgWy4Gu3Cm7mxxl0GTnncROnPpN386yNua4=",
        "ARC-Authentication-Results": "i=1; server2.sourceware.org",
        "DKIM-Signature": [
            "v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de;\n s=susede2_rsa;\n t=1774538673; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:\n mime-version:mime-version:content-type:content-type;\n bh=r6NYxtNNVk3yRGCxz1dtSlAwWk0sOgqB8ZGpKfWbPOE=;\n b=XjPCHyIQZ2HJerWFiYZGNuXY00NT1N2DejOt0IiRtKAimaksEvVR52uEgcxc+7HLEMXPHc\n VhhXOzdMxMFdnAxx92CPifwRbxNcrZJ8bj7Mp2Lz+u7rwz0PzBJFI9OkSIOeY9IDaSLUSq\n 82ymPLkYUT5QPvt+yLXBCo+8UlsvYyI=",
            "v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de;\n s=susede2_ed25519; t=1774538673;\n h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:\n mime-version:mime-version:content-type:content-type;\n bh=r6NYxtNNVk3yRGCxz1dtSlAwWk0sOgqB8ZGpKfWbPOE=;\n b=sk4/NszkOJGAXgYY0c1VyZGcHJPWbY31yrP+elW0xI/jdRkAcD0a02gLBSDt4JH+2X3Phk\n vb5VDvK9sRBETVAg==",
            "v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de;\n s=susede2_rsa;\n t=1774538673; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:\n mime-version:mime-version:content-type:content-type;\n bh=r6NYxtNNVk3yRGCxz1dtSlAwWk0sOgqB8ZGpKfWbPOE=;\n b=XjPCHyIQZ2HJerWFiYZGNuXY00NT1N2DejOt0IiRtKAimaksEvVR52uEgcxc+7HLEMXPHc\n VhhXOzdMxMFdnAxx92CPifwRbxNcrZJ8bj7Mp2Lz+u7rwz0PzBJFI9OkSIOeY9IDaSLUSq\n 82ymPLkYUT5QPvt+yLXBCo+8UlsvYyI=",
            "v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de;\n s=susede2_ed25519; t=1774538673;\n h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:\n mime-version:mime-version:content-type:content-type;\n bh=r6NYxtNNVk3yRGCxz1dtSlAwWk0sOgqB8ZGpKfWbPOE=;\n b=sk4/NszkOJGAXgYY0c1VyZGcHJPWbY31yrP+elW0xI/jdRkAcD0a02gLBSDt4JH+2X3Phk\n vb5VDvK9sRBETVAg=="
        ],
        "Date": "Thu, 26 Mar 2026 16:24:17 +0100 (CET)",
        "From": "Richard Biener <rguenther@suse.de>",
        "To": "gcc-patches@gcc.gnu.org",
        "Subject": "[PATCH] debug/124644 - duplicate DW_AT_artificial attribute",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain; charset=US-ASCII",
        "Message-Id": "<20260326152433.57A6F4A0A3@imap1.dmz-prg2.suse.org>",
        "X-Spamd-Result": "default: False [-4.30 / 50.00]; BAYES_HAM(-3.00)[100.00%];\n NEURAL_HAM_LONG(-1.00)[-1.000];\n NEURAL_HAM_SHORT(-0.20)[-1.000]; MIME_GOOD(-0.10)[text/plain];\n MIME_TRACE(0.00)[0:+]; FUZZY_RATELIMITED(0.00)[rspamd.com];\n MISSING_XM_UA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[];\n ARC_NA(0.00)[]; RCPT_COUNT_ONE(0.00)[1]; RCVD_TLS_ALL(0.00)[];\n PREVIOUSLY_DELIVERED(0.00)[gcc-patches@gcc.gnu.org];\n FROM_EQ_ENVFROM(0.00)[]; FROM_HAS_DN(0.00)[];\n DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519];\n RCVD_COUNT_TWO(0.00)[2]; TO_MATCH_ENVRCPT_ALL(0.00)[];\n TO_DN_NONE(0.00)[];\n DBL_BLOCKED_OPENRESOLVER(0.00)[imap1.dmz-prg2.suse.org:helo,\n imap1.dmz-prg2.suse.org:mid]",
        "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": "We can attempt to add DW_AT_artificial because of two reasons,\nbecause of DECL_ARTIFICIAL on the decl and because of the\nartificial function attribute which is attempted when marking\na decl DIE for inlining.  The following guards the latter,\navoiding an ICE with checking enabled.\n\nBootstrapped and tested on x86_64-unknown-linux-gnu, will push\ntomorrow, just in case somebody manages to reduce the\ntestcase further.\n\nRichard.\n\n\tPR debug/124644\n\t* dwarf2out.cc (dwarf2out_abstract_function): Only\n\tadd DW_AT_artificial if the decl isn't DECL_ARTIFICIAL.\n\n\t* g++.dg/debug/pr124644.C: New testcase.\n---\n gcc/dwarf2out.cc                      |  1 +\n gcc/testsuite/g++.dg/debug/pr124644.C | 95 +++++++++++++++++++++++++++\n 2 files changed, 96 insertions(+)\n create mode 100644 gcc/testsuite/g++.dg/debug/pr124644.C",
    "diff": "diff --git a/gcc/dwarf2out.cc b/gcc/dwarf2out.cc\nindex 31ff7ff1905..bf342e468bf 100644\n--- a/gcc/dwarf2out.cc\n+++ b/gcc/dwarf2out.cc\n@@ -23790,6 +23790,7 @@ dwarf2out_abstract_function (tree decl)\n     }\n \n   if (DECL_DECLARED_INLINE_P (decl)\n+      && !DECL_ARTIFICIAL (decl)\n       && lookup_attribute (\"artificial\", DECL_ATTRIBUTES (decl)))\n     add_AT_flag (old_die, DW_AT_artificial, 1);\n \ndiff --git a/gcc/testsuite/g++.dg/debug/pr124644.C b/gcc/testsuite/g++.dg/debug/pr124644.C\nnew file mode 100644\nindex 00000000000..e9300216a35\n--- /dev/null\n+++ b/gcc/testsuite/g++.dg/debug/pr124644.C\n@@ -0,0 +1,95 @@\n+// { dg-do compile }\n+// { dg-options \"-O -w -g1 -fchecking\" }\n+\n+template <int __v> struct integral_constant {\n+  static constexpr int value = __v;\n+};\n+struct __conjunction_impl {\n+  using type = integral_constant<1>;\n+};\n+template <bool, typename _Iftrue, typename> using conditional_t = _Iftrue;\n+template <int> struct _Fixed;\n+template <int> struct _VecBuiltin;\n+template <int _Np> using fixed_size = _Fixed<_Np>;\n+template <typename...> struct _SimdTuple;\n+template <int> struct __fixed_size_storage;\n+template <typename, int _Np>\n+using __fixed_size_storage_t = __fixed_size_storage<_Np>::type;\n+struct _SimdWrapperBase {\n+  [[__gnu__::__artificial__]] constexpr _SimdWrapperBase(int);\n+};\n+struct _SimdWrapper : _SimdWrapperBase {\n+  using _SimdWrapperBase::_SimdWrapperBase;\n+};\n+template <unsigned long> struct __deduce_impl;\n+template <typename, long _Np> using deduce_t = __deduce_impl<_Np>::type;\n+template <template <int> class _Abi, int _Bytes> struct __find_next_valid_abi {\n+  static auto _S_choose() { return _Abi<_Bytes>(); }\n+  using type = decltype(_S_choose());\n+};\n+template <template <int> class...> struct _AbiList;\n+const int _S_determine_best_abi__Bytes = sizeof(int);\n+template <template <int> class _A0, template <int> class... _Rest>\n+struct _AbiList<_A0, _Rest...> {\n+  template <typename, int> static auto _S_determine_best_abi() {\n+    return typename __find_next_valid_abi<_A0,\n+                                          _S_determine_best_abi__Bytes>::type{};\n+  }\n+  template <typename _Tp, int _Np>\n+  using _BestAbi = decltype(_S_determine_best_abi<_Tp, _Np>());\n+};\n+template <typename _Abi> struct _SimdTraits : _Abi::__traits<int> {};\n+template <int _Np> struct __deduce_fixed_size_fallback {\n+  using type = fixed_size<_Np>;\n+};\n+template <unsigned long _Np>\n+struct __deduce_impl : __deduce_fixed_size_fallback<_Np> {};\n+template <typename _Abi> struct simd {\n+  using _Traits = _SimdTraits<_Abi>;\n+  using _Impl = _Traits::_SimdImpl;\n+  using abi_type = _Abi;\n+  template <typename _Up> simd(_Up __x) : _M_data(_Impl::_S_broadcast(__x)) {}\n+  friend void operator!=(simd, simd);\n+  _Traits::_SimdMember _M_data;\n+};\n+struct _SimdTupleData {\n+  _SimdWrapper second;\n+};\n+template <typename _Tp, typename _Abi0, typename... _Abis>\n+struct _SimdTuple<_Tp, _Abi0, _Abis...> : _SimdTupleData {\n+  template <typename _Fp> static _SimdTuple _S_generate(_Fp) { return {0}; }\n+};\n+template <typename _Tp, int _Np, typename,\n+          typename = simd<_AbiList<_VecBuiltin>::_BestAbi<_Tp, _Np>>>\n+struct __fixed_size_storage_builder;\n+template <int _Np>\n+struct __fixed_size_storage\n+    : __fixed_size_storage_builder<long, _Np, _SimdTuple<>> {};\n+template <typename _Tp, int _Np, typename... _As, typename _Next>\n+struct __fixed_size_storage_builder<_Tp, _Np, _SimdTuple<_As...>, _Next> {\n+  using type = _SimdTuple<_Tp, typename _Next::abi_type>;\n+};\n+template <int _Np> struct _SimdImplFixedSize {\n+  template <typename _Tp> using _SimdMember = __fixed_size_storage_t<_Tp, _Np>;\n+  template <typename _Tp> static _SimdMember<_Tp> _S_broadcast(_Tp) {\n+    return _SimdMember<_Tp>::_S_generate([] {});\n+  }\n+};\n+template <int _Np> struct _Fixed {\n+  template <typename> struct __traits {\n+    using _SimdImpl = _SimdImplFixedSize<_Np>;\n+    using _SimdMember = __fixed_size_storage_t<int, _Np>;\n+  };\n+};\n+struct _GnuTraits {\n+  using _SimdImpl = long;\n+  using _SimdMember = _SimdWrapper;\n+};\n+template <int> struct _VecBuiltin {\n+  template <typename>\n+  static constexpr bool _S_is_valid_v = __conjunction_impl::type ::value;\n+  template <typename _Tp>\n+  using __traits = conditional_t<_S_is_valid_v<_Tp>, _GnuTraits, int>;\n+};\n+template <typename U, int N> using V = simd<deduce_t<U, N>>;\n+void reduce(V<long, 4> x) { x != 1; }\n",
    "prefixes": []
}