Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/2218781/?format=api
{ "id": 2218781, "url": "http://patchwork.ozlabs.org/api/patches/2218781/?format=api", "web_url": "http://patchwork.ozlabs.org/project/gcc/patch/20260401215920.674286-2-jwakely@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": "<20260401215920.674286-2-jwakely@redhat.com>", "list_archive_url": null, "date": "2026-04-01T20:42:02", "name": "[02/10] libstdc++: Fix errors in Doxygen markup", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "edb09042ea1db51333c5c1bc3051a37ddee8317f", "submitter": { "id": 48004, "url": "http://patchwork.ozlabs.org/api/people/48004/?format=api", "name": "Jonathan Wakely", "email": "jwakely@redhat.com" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/gcc/patch/20260401215920.674286-2-jwakely@redhat.com/mbox/", "series": [ { "id": 498401, "url": "http://patchwork.ozlabs.org/api/series/498401/?format=api", "web_url": "http://patchwork.ozlabs.org/project/gcc/list/?series=498401", "date": "2026-04-01T20:42:04", "name": "[01/10] libstdc++: Tweak Doxygen config file to include C++26 components", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/498401/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2218781/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2218781/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=NtNhJD0s;\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=NtNhJD0s", "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 4fmJp61ynTz1yCs\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 02 Apr 2026 09:00:46 +1100 (AEDT)", "from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id 38C1A4D108D2\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 1 Apr 2026 22:00:34 +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 93C4D4BA2E32\n for <gcc-patches@gcc.gnu.org>; Wed, 1 Apr 2026 21:59:27 +0000 (GMT)", "from mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com\n (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by\n relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3,\n cipher=TLS_AES_256_GCM_SHA384) id us-mta-308-aLpZE6QNOaGwKaKaHDWxYw-1; Wed,\n 01 Apr 2026 17:59:26 -0400", "from mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com\n (mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.12])\n (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest\n SHA256)\n (No client certificate requested)\n by mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS\n id F01F0180060F; Wed, 1 Apr 2026 21:59:24 +0000 (UTC)", "from zen.kayari.org (unknown [10.44.48.64])\n by mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP\n id E1A8D19560AB; Wed, 1 Apr 2026 21:59:23 +0000 (UTC)" ], "DKIM-Filter": [ "OpenDKIM Filter v2.11.0 sourceware.org 38C1A4D108D2", "OpenDKIM Filter v2.11.0 sourceware.org 93C4D4BA2E32" ], "DMARC-Filter": "OpenDMARC Filter v1.4.2 sourceware.org 93C4D4BA2E32", "ARC-Filter": "OpenARC Filter v1.0.0 sourceware.org 93C4D4BA2E32", "ARC-Seal": "i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1775080767; cv=none;\n b=WY5pXaW8rl3YKek/Sx3UPrJQi901HT3Bwg3w1fyEwow7sTgrTFXsB0ESBDqFvIKDz1h/X5GH8pZjt+ZUI03kCqJvn66MzxtxtHYDMPqw5sTJCkB6JFkU9OKymFQFUqLBIwZcOPbzH6+eh28WdEDqEhhKfw7fgrBWbTe73lWCKfE=", "ARC-Message-Signature": "i=1; a=rsa-sha256; d=sourceware.org; s=key;\n t=1775080767; c=relaxed/simple;\n bh=adGw3mFl+2Q5PJ5RKzsgfxs6Xya1Y0bt7GFX1qSh7Iw=;\n h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version;\n b=rYz5GXKkfahJ8V55V5UOgt80jAYMUx9uEIRHZZJyIc8g0b4/657OiFCEKlQuHBlXA5R4wgN0ZmJ5NWEjF9XQh4dHt4Z8q7ogwUFgIx390LyIAZCWwtNoCRqHdkObBl4oPT0090+MHCqgK4obhx5szWt4itJlJLtFPdk7fqsjTLY=", "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=1775080767;\n h=from:from:reply-to:subject:subject:date:date:message-id:message-id:\n to:to:cc:mime-version:mime-version:content-type:content-type:\n content-transfer-encoding:content-transfer-encoding:\n in-reply-to:in-reply-to:references:references;\n bh=5M9VuZBFzTgQXkacd2UlNDpi1u3Th+EpQjbYRnAqjxw=;\n b=NtNhJD0saEEyfnyBn0OLq1HuFQ353UmVoLQmNj1yAHEVX2ylPJerxH6DPVCF1BSMkEOZ/F\n x68GCfAw7RdeE2dy10UkwIWzRM7PrICAW95cRjKpV9HayU+c2gS+0p5hZXwb+4aug1JYnA\n XRQZJCIjujmGhlhc7Mo2Xp9ZlOmrufs=", "X-MC-Unique": "aLpZE6QNOaGwKaKaHDWxYw-1", "X-Mimecast-MFC-AGG-ID": "aLpZE6QNOaGwKaKaHDWxYw_1775080765", "From": "Jonathan Wakely <jwakely@redhat.com>", "To": "gcc-patches@gcc.gnu.org,\n\tlibstdc++@gcc.gnu.org", "Subject": "[PATCH 02/10] libstdc++: Fix errors in Doxygen markup", "Date": "Wed, 1 Apr 2026 21:42:02 +0100", "Message-ID": "<20260401215920.674286-2-jwakely@redhat.com>", "In-Reply-To": "<20260401215920.674286-1-jwakely@redhat.com>", "References": "<20260401215920.674286-1-jwakely@redhat.com>", "MIME-Version": "1.0", "X-Scanned-By": "MIMEDefang 3.0 on 10.30.177.12", "X-Mimecast-Spam-Score": "0", "X-Mimecast-MFC-PROC-ID": "zXpdQyQmU1hKnwgxl2zcCWYbtOD468d_U6nffS3K_gM_1775080765", "X-Mimecast-Originator": "redhat.com", "Content-Type": "text/plain", "Content-Transfer-Encoding": "8bit", "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": "libstdc++-v3/ChangeLog:\n\n\t* doc/doxygen/doxygroups.cc: Define variable_templates group.\n\t* include/bits/binders.h: Fix @file name.\n\t* include/bits/formatfwd.h: Add missing @cond\n\t* include/bits/forward_list.h: Add closing backtick in comment.\n\t* include/bits/out_ptr.h (out_ptr, inout_ptr): Fix names in\n\t@param comments.\n\t* include/bits/regex_constants.h: Escape backtick in comment.\n\t* include/bits/stl_map.h: Add missing @{.\n\t* include/bits/stl_set.h: Likewise.\n\t* include/bits/stl_pair.h: Move declaration of complex into #if\n\tgroup where it's used. Fix nesting of @cond and @endcond in #if\n\tgroups.\n\t* include/std/functional: Move @cond inside #if group.\n\t* include/std/type_traits: Likewise.\n\t* libsupc++/exception: Fix typo'd backtick.\n---\n\nTested x86_64-linux, docs built with Doxygen 1.13.2 and 1.17.0 (from git)\n\n libstdc++-v3/doc/doxygen/doxygroups.cc | 15 +++++++++++++++\n libstdc++-v3/include/bits/binders.h | 2 +-\n libstdc++-v3/include/bits/formatfwd.h | 1 +\n libstdc++-v3/include/bits/forward_list.h | 2 +-\n libstdc++-v3/include/bits/out_ptr.h | 4 ++--\n libstdc++-v3/include/bits/regex_constants.h | 4 ++--\n libstdc++-v3/include/bits/stl_map.h | 1 +\n libstdc++-v3/include/bits/stl_pair.h | 9 ++++++---\n libstdc++-v3/include/bits/stl_set.h | 1 +\n libstdc++-v3/include/std/functional | 2 +-\n libstdc++-v3/include/std/type_traits | 8 ++++----\n libstdc++-v3/libsupc++/exception | 4 ++--\n 12 files changed, 37 insertions(+), 16 deletions(-)", "diff": "diff --git a/libstdc++-v3/doc/doxygen/doxygroups.cc b/libstdc++-v3/doc/doxygen/doxygroups.cc\nindex 27d4a5e20ba9..00d945ceba00 100644\n--- a/libstdc++-v3/doc/doxygen/doxygroups.cc\n+++ b/libstdc++-v3/doc/doxygen/doxygroups.cc\n@@ -164,6 +164,21 @@ summarized in <a href=\"tables.html\">tables</a>. */\n * and condition variables.\n */\n \n+/**\n+ * @defgroup variable_templates Variable Templates\n+ * @ingroup metaprogramming\n+ * @since C++17\n+ *\n+ * Each trait in `<type_traits>` that has a `value` static data member is\n+ * also available as a variable template, using the same name with a `_v`\n+ * suffix. For example, `std::is_integral_v<T>` is a `bool` constant with\n+ * the same value as `std::is_integral<T>::value`.\n+ *\n+ * In some cases, using the variable template instead of the `::value` member\n+ * avoids instantiating the class template for the trait. This gives the\n+ * compiler less work to do and can make your code compile a little faster.\n+ */\n+\n /**\n * @defgroup experimental Technical Specifications\n *\ndiff --git a/libstdc++-v3/include/bits/binders.h b/libstdc++-v3/include/bits/binders.h\nindex 972471745bd4..51dba4cb446d 100644\n--- a/libstdc++-v3/include/bits/binders.h\n+++ b/libstdc++-v3/include/bits/binders.h\n@@ -23,7 +23,7 @@\n // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see\n // <http://www.gnu.org/licenses/>.\n \n-/** @file include/bits/binder.h\n+/** @file include/bits/binders.h\n * This is an internal header file, included by other library headers.\n * Do not attempt to use it directly. @headername{functional}\n */\ndiff --git a/libstdc++-v3/include/bits/formatfwd.h b/libstdc++-v3/include/bits/formatfwd.h\nindex d2dfb17492d1..d28ca70b7d80 100644\n--- a/libstdc++-v3/include/bits/formatfwd.h\n+++ b/libstdc++-v3/include/bits/formatfwd.h\n@@ -56,6 +56,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION\n // [format.formatter], formatter\n template<typename _Tp, typename _CharT = char> struct formatter;\n \n+/// @cond undocumented\n namespace __format\n {\n #ifdef _GLIBCXX_USE_WCHAR_T\ndiff --git a/libstdc++-v3/include/bits/forward_list.h b/libstdc++-v3/include/bits/forward_list.h\nindex 025486646f3c..7b333b3b0b6e 100644\n--- a/libstdc++-v3/include/bits/forward_list.h\n+++ b/libstdc++-v3/include/bits/forward_list.h\n@@ -1461,7 +1461,7 @@ namespace __fwdlist\n *\n * This function will insert copies of the data in the range\n * `[ __first, __last)` into the %forward_list after the\n- * location specified by `__pos.\n+ * location specified by `__pos`.\n *\n * This operation is linear in the number of elements inserted and\n * does not invalidate iterators and references.\ndiff --git a/libstdc++-v3/include/bits/out_ptr.h b/libstdc++-v3/include/bits/out_ptr.h\nindex 48fe3475b2f7..cc5a8a3adacb 100644\n--- a/libstdc++-v3/include/bits/out_ptr.h\n+++ b/libstdc++-v3/include/bits/out_ptr.h\n@@ -396,7 +396,7 @@ namespace __detail\n /**\n * @tparam _Pointer The type of pointer to convert to.\n * @param __s The pointer that should take ownership of the result.\n- * @param __args... Arguments to use when resetting the smart pointer.\n+ * @param __args Pack of arguments to use when resetting the smart pointer.\n * @return A `std::out_ptr_t` referring to `__s`.\n * @since C++23\n * @headerfile <memory>\n@@ -417,7 +417,7 @@ namespace __detail\n /**\n * @tparam _Pointer The type of pointer to convert to.\n * @param __s The pointer that should take ownership of the result.\n- * @param __args... Arguments to use when resetting the smart pointer.\n+ * @param __args Pack of arguments to use when resetting the smart pointer.\n * @return A `std::inout_ptr_t` referring to `__s`.\n * @since C++23\n * @headerfile <memory>\ndiff --git a/libstdc++-v3/include/bits/regex_constants.h b/libstdc++-v3/include/bits/regex_constants.h\nindex 32b9de1000b2..e18f162196e3 100644\n--- a/libstdc++-v3/include/bits/regex_constants.h\n+++ b/libstdc++-v3/include/bits/regex_constants.h\n@@ -335,9 +335,9 @@ namespace regex_constants\n * Format strings (from ECMA-262 [15.5.4.11]):\n * @li $$ The dollar-sign itself ($)\n * @li $& The matched substring.\n- * @li $` The portion of @a string that precedes the matched substring.\n+ * @li $\\` The portion of the string that precedes the matched substring.\n * This would be match_results::prefix().\n- * @li $' The portion of @a string that follows the matched substring.\n+ * @li $' The portion of the string that follows the matched substring.\n * This would be match_results::suffix().\n * @li $n The nth capture, where n is in [1,9] and $n is not followed by a\n * decimal digit. If n <= match_results::size() and the nth capture\ndiff --git a/libstdc++-v3/include/bits/stl_map.h b/libstdc++-v3/include/bits/stl_map.h\nindex 1e119a95b5cd..88a8faab9244 100644\n--- a/libstdc++-v3/include/bits/stl_map.h\n+++ b/libstdc++-v3/include/bits/stl_map.h\n@@ -1096,6 +1096,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER\n * is assigned from __obj.\n *\n * Insertion requires logarithmic time.\n+ * @{\n */\n template <typename _Obj>\n \tpair<iterator, bool>\ndiff --git a/libstdc++-v3/include/bits/stl_pair.h b/libstdc++-v3/include/bits/stl_pair.h\nindex efe6f72569ba..aa49f87fc137 100644\n--- a/libstdc++-v3/include/bits/stl_pair.h\n+++ b/libstdc++-v3/include/bits/stl_pair.h\n@@ -101,9 +101,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION\n template<size_t...>\n struct _Index_tuple;\n \n- template<typename _Tp>\n- class complex;\n-\n template<size_t _Int, class _Tp1, class _Tp2>\n constexpr typename tuple_element<_Int, pair<_Tp1, _Tp2>>::type&\n get(pair<_Tp1, _Tp2>& __in) noexcept;\n@@ -153,6 +150,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION\n get(const array<_Tp, _Nm>&&) noexcept;\n \n #if __glibcxx_tuple_like >= 202311 // >= C++26\n+ template<typename _Tp>\n+ class complex;\n+\n template<size_t _Int, typename _Tp>\n constexpr _Tp&\n get(complex<_Tp>&) noexcept;\n@@ -233,8 +233,11 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION\n }\n };\n #endif // lib concepts\n+ /// @endcond\n #endif // C++11\n \n+ /// @cond undocumented\n+\n #if __glibcxx_tuple_like // >= C++23\n template<typename _Tp>\n inline constexpr bool __is_tuple_v = false;\ndiff --git a/libstdc++-v3/include/bits/stl_set.h b/libstdc++-v3/include/bits/stl_set.h\nindex 14825cc05acb..ce35e28cde78 100644\n--- a/libstdc++-v3/include/bits/stl_set.h\n+++ b/libstdc++-v3/include/bits/stl_set.h\n@@ -585,6 +585,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER\n * to the first is returned.\n *\n * Insertion requires logarithmic time (if the hint is not taken).\n+ * @{\n */\n iterator\n insert(const_iterator __position, const value_type& __x)\ndiff --git a/libstdc++-v3/include/std/functional b/libstdc++-v3/include/std/functional\nindex 314c0f6ac4a4..91478d3e9fbe 100644\n--- a/libstdc++-v3/include/std/functional\n+++ b/libstdc++-v3/include/std/functional\n@@ -148,9 +148,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION\n }\n #endif // __cpp_lib_invoke_r\n \n+#if __cplusplus >= 201103L\n /// @cond undocumented\n \n-#if __cplusplus >= 201103L\n template<typename _MemFunPtr,\n \t bool __is_mem_fn = is_member_function_pointer<_MemFunPtr>::value>\n class _Mem_fn_base\ndiff --git a/libstdc++-v3/include/std/type_traits b/libstdc++-v3/include/std/type_traits\nindex a7f881fe9736..bba7a3fd03d2 100644\n--- a/libstdc++-v3/include/std/type_traits\n+++ b/libstdc++-v3/include/std/type_traits\n@@ -2484,15 +2484,15 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION\n const size_t aligned_union<_Len, _Types...>::alignment_value;\n #pragma GCC diagnostic pop\n \n- /// @cond undocumented\n-\n+ // Decay trait for arrays and functions, used for perfect forwarding\n+ // in make_pair, make_tuple, etc.\n #if _GLIBCXX_USE_BUILTIN_TRAIT(__decay)\n template<typename _Tp>\n struct decay\n { using type = __decay(_Tp); };\n #else\n- // Decay trait for arrays and functions, used for perfect forwarding\n- // in make_pair, make_tuple, etc.\n+ /// @cond undocumented\n+\n template<typename _Up>\n struct __decay_selector\n : __conditional_t<is_const<const _Up>::value, // false for functions\ndiff --git a/libstdc++-v3/libsupc++/exception b/libstdc++-v3/libsupc++/exception\nindex 0ae01be25dd5..ab3e06da9f79 100644\n--- a/libstdc++-v3/libsupc++/exception\n+++ b/libstdc++-v3/libsupc++/exception\n@@ -134,8 +134,8 @@ namespace std _GLIBCXX_VISIBILITY(default)\n * stack unwinding [15.2]. end note]'\n *\n * 2: 'When `uncaught_exception()` is true, throwing an\n- * %exception can result in a call of 1terminate()`\n- * (15.5.1).'\n+ * %exception can result in a call of `terminate()`\n+ * (15.5.1).\n */\n _GLIBCXX17_DEPRECATED_SUGGEST(\"std::uncaught_exceptions()\")\n bool uncaught_exception() _GLIBCXX_USE_NOEXCEPT __attribute__ ((__pure__));\n", "prefixes": [ "02/10" ] }