[{"id":3682057,"web_url":"http://patchwork.ozlabs.org/comment/3682057/","msgid":"<3d3ae93e-7946-5e6f-3f2f-0a49274c8d1c@idea>","list_archive_url":null,"date":"2026-04-24T14:36:17","subject":"Re: [PATCH v2] libsdc++: Restore check for validity of std::get for\n elements_view.","submitter":{"id":78319,"url":"http://patchwork.ozlabs.org/api/people/78319/","name":"Patrick Palka","email":"ppalka@redhat.com"},"content":"On Fri, 24 Apr 2026, Tomasz Kamiński wrote:\n\n> Resolves LWG3797, \"elements_view insufficiently constrained\".\n> \n> When P2165R4 updated __has_tuple_element in C++23 to reuse __tuple_like\n> concept, it dropped the requirement of validity of get, assuming that for\n> tuple_like type with size of N, get<I> on lvalue is well-formed for any I < N.\n> This however does not hold for ranges::subrange (tuple-like of size 2) with\n> move-only iterator, for which get can only be applied on rvalue. In consequence\n> constrains allowed instantiating elements_view for range of such subrange,\n> but instantiating it's iterator lead to hard error from iterator_category\n> computation.\n> \n> This patch applies the requirements on validity of get also in C++23 and\n> later standard modes.\n> \n> libstdc++-v3/ChangeLog:\n> \n> \t* include/std/ranges (__detail::__has_tuple_element): Check\n> \tif std::get<_Nm>(__t) returns referenceable type also for C++23\n> \tand later.\n> \t* testsuite/std/ranges/adaptors/elements.cc: Add test covering\n> \tvector of ranges::subrange with move-only iterator.\n> \n> Reviewed-by: Patrick Palka <ppalka@redhat.com>\n> Signed-off-by: Tomasz Kamiński <tkaminsk@redhat.com>\n> ---\n> v2 applies suggestion from Patrick:\n>  - keep seprate defintion of __has_tuple_element for pre/post C++23\n>  - add mention of LWG3797 in comment\n> \n> Tested on x86_654-linux. OK for trunk?\n\nLGTM!\n\n> \n>  libstdc++-v3/include/std/ranges                  |  9 ++++++++-\n>  .../testsuite/std/ranges/adaptors/elements.cc    | 16 ++++++++++++++++\n>  2 files changed, 24 insertions(+), 1 deletion(-)\n> \n> diff --git a/libstdc++-v3/include/std/ranges b/libstdc++-v3/include/std/ranges\n> index 55d3c520ba4..7d8b37f8c5c 100644\n> --- a/libstdc++-v3/include/std/ranges\n> +++ b/libstdc++-v3/include/std/ranges\n> @@ -4355,8 +4355,15 @@ namespace views::__adaptor\n>    namespace __detail\n>    {\n>  #if __cpp_lib_tuple_like // >= C++23\n> +    // _GLIBCXX_RESOLVE_LIB_DEFECTS\n> +    // 3797. elements_view insufficiently constrained\n>      template<typename _Tp, size_t _Nm>\n> -    concept __has_tuple_element = __tuple_like<_Tp> && _Nm < tuple_size_v<_Tp>;\n> +    concept __has_tuple_element = __tuple_like<_Tp> && _Nm < tuple_size_v<_Tp>\n> +      && requires(_Tp __t)\n> +\t {\n> +\t   { std::get<_Nm>(__t) }\n> +\t     -> convertible_to<const tuple_element_t<_Nm, _Tp>&>;\n> +\t };\n>  #else\n>      template<typename _Tp, size_t _Nm>\n>      concept __has_tuple_element = requires(_Tp __t)\n> diff --git a/libstdc++-v3/testsuite/std/ranges/adaptors/elements.cc b/libstdc++-v3/testsuite/std/ranges/adaptors/elements.cc\n> index 5237d787e7b..d384cfd5adf 100644\n> --- a/libstdc++-v3/testsuite/std/ranges/adaptors/elements.cc\n> +++ b/libstdc++-v3/testsuite/std/ranges/adaptors/elements.cc\n> @@ -27,6 +27,22 @@\n>  namespace ranges = std::ranges;\n>  namespace views = ranges::views;\n>  \n> +template<size_t N, typename Rg>\n> +concept can_elements = requires (Rg&& rg)\n> +{ views::elements<0>(rg); };\n> +\n> +static_assert( !can_elements<0, std::vector<int>> );\n> +static_assert( can_elements<0, std::tuple<int>[4]> );\n> +static_assert( can_elements<1, std::vector<std::pair<int, int>>> );\n> +\n> +// Test LWG 3797. elements_view insufficiently constrained\n> +using move_only_iter_range = __gnu_test::test_input_range_nocopy<int>;\n> +using move_only_iter_subrange = ranges::subrange<\n> +  ranges::iterator_t<move_only_iter_range>,\n> +  ranges::sentinel_t<move_only_iter_range>>;\n> +static_assert( can_elements<0, std::vector<ranges::subrange<int*>>> );\n> +static_assert( !can_elements<0, std::vector<move_only_iter_subrange>> );\n> +\n>  void\n>  test01()\n>  {\n> -- \n> 2.53.0\n> \n>","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=OUQKtPGp;\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=OUQKtPGp","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.129.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 4g2FsG5lMgz1yHv\n\tfor <incoming@patchwork.ozlabs.org>; Sat, 25 Apr 2026 00:36:50 +1000 (AEST)","from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id D6DF14BB58E4\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 24 Apr 2026 14:36:48 +0000 (GMT)","from us-smtp-delivery-124.mimecast.com\n (us-smtp-delivery-124.mimecast.com [170.10.129.124])\n by sourceware.org (Postfix) with ESMTP id AAC9F4BB3BD0\n for <gcc-patches@gcc.gnu.org>; Fri, 24 Apr 2026 14:36:21 +0000 (GMT)","from mail-qv1-f69.google.com (mail-qv1-f69.google.com\n [209.85.219.69]) by relay.mimecast.com with ESMTP with STARTTLS\n (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id\n us-mta-147-2vD6t-lrOD-JhcNW0qPNGA-1; Fri, 24 Apr 2026 10:36:20 -0400","by mail-qv1-f69.google.com with SMTP id\n 6a1803df08f44-8acb4b340f4so21842846d6.1\n for <gcc-patches@gcc.gnu.org>; Fri, 24 Apr 2026 07:36:19 -0700 (PDT)","from [2600:4040:aa66:bf00:9e8e:99ff:fed1:71f]\n ([2600:4040:aa66:bf00:9e8e:99ff:fed1:71f])\n by smtp.gmail.com with ESMTPSA id\n 6a1803df08f44-8b02ac72915sm190636036d6.15.2026.04.24.07.36.17\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Fri, 24 Apr 2026 07:36:18 -0700 (PDT)"],"DKIM-Filter":["OpenDKIM Filter v2.11.0 sourceware.org D6DF14BB58E4","OpenDKIM Filter v2.11.0 sourceware.org AAC9F4BB3BD0"],"DMARC-Filter":"OpenDMARC Filter v1.4.2 sourceware.org AAC9F4BB3BD0","ARC-Filter":"OpenARC Filter v1.0.0 sourceware.org AAC9F4BB3BD0","ARC-Seal":"i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1777041381; cv=none;\n b=GQeoCdwBrZ5nLhCpSXKIwqhYCLr30LtXL/yoMCiqVWZ1yVbueZ31iACzQ7+l9b2HxAqfyB5dG7y8RPgzMbZnpFu4nEkyhZQ/JvI25YV6mabQgv1X+TnuYWgP7ij+JJ8tF3qbKGZ7LwAU5cOm+V2tCD4Q9V3RmIQIxbxyATnshwg=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=sourceware.org; s=key;\n t=1777041381; c=relaxed/simple;\n bh=hqgfKxUCgNw4WgQ0CVRn8TZcnCFHoZmQ+r8oM7hutfc=;\n h=DKIM-Signature:From:Date:To:Subject:Message-ID:MIME-Version;\n b=Fb54X6tZUKD0KZiSLtLPj7l5taYR/NOxPZDLSVLyfgISOiKQ5rrAuKkC6QLjQQJYmSaCWFsPD3MZBYi3DCPiMxYsDa9f5FYN+e0/OKyKfUQsPHUS8J7A6kPMd2zpkaOyMZ3mqM/BTWuRYkTLoBRspTBkCMt+yI2yauQc7vwnkt4=","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=1777041381;\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 in-reply-to:in-reply-to:references:references;\n bh=Ve7nOBKnaQ2KFUP9qpyl7ADQrT1rO52REnuKBuHYk7U=;\n b=OUQKtPGpe92K8kKYBptb/tR42PXdqrrv3DfDw9UyrtmKLWxyZeyQGkEyJ7w67CwnQ36VGf\n NW90rsYPmC++LxWzgAym5Wh1oc1uEGVCLIzfkBjavNCuji2tCX1SSU3eu8Dqda0k7A7IKk\n reQsHzn5CI9O7dgxm/Q0PyFI8okEQhs=","X-MC-Unique":"2vD6t-lrOD-JhcNW0qPNGA-1","X-Mimecast-MFC-AGG-ID":"2vD6t-lrOD-JhcNW0qPNGA_1777041379","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1777041379; x=1777646179;\n h=mime-version:references:message-id:in-reply-to:subject:cc:to:date\n :from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id\n :reply-to;\n bh=xZrrJxiG+cimQZ/qhiEtdDTjHCF9TJgw7oveTgPuB88=;\n b=V6Y757AiWFcQq14L2hAMDM7Xuw3mKad+n/HWwDg0J8LCk2YPA7KF2eFnjEybAs+00V\n pycPBRlmdO9iCWJu3p9TCBqd1R8DqoCzc8B5CIKIObudVcwYNMr/ywGd/LgHJI1GgPz2\n zBP3J7Ar2bTxRXxJodRfdGZZDE/VzZYD2nwfufBVxA3EM7jKDrRiKzxZDIA3z9rRb8rb\n 9IkLGqZzHz5YTEu16poU9lqXWwApE85+kMVSRyB8syP66D9FKbIR3UTh6sWNVOyLdja2\n hd586JjNSZPkujoQmTepdry5P+r/7hYmo0xyGt9pNkc/uEtxVeyZs5aIlqe45klR5hP8\n FLlg==","X-Forwarded-Encrypted":"i=1;\n AFNElJ9G/YiT3xhjyZB3zgAKMDMjb2Va/V94ZY3BSky4PsEk2oVrjVB9FBvQLGiwmAyQr3FxuxuPtmUfvN0Bmg==@gcc.gnu.org","X-Gm-Message-State":"AOJu0YxnW1261Frrbbh+3GnXfqOH60OsdZPLAyRWmKzaBvnV4W7DjDqv\n OtdT2B95w2GZfrVUHn3JTHwgDmQcgbWNkWGX2LiJ8eUWjXgMPP853TgfNgEZlt3u5EMhTiXkEKz\n Qm88rBA60iuahD/oUHGlSeQJd9hQY2UF/HKAAySeJAiEVABfG46S5U+WwlGg=","X-Gm-Gg":"AeBDiesAb1XnSU9t7NgaosHOAJy6NsmZphZG3n9r1heJxE8nNYAgpMGfO1LBl/a0v6k\n 05nBRmC2bv0/QtxZMGD+JQYlI/IyO+89//KqGTLgCKL5mwuNRub9qpsG6fNXvsHA2dz5iy9AoLO\n AbHBwEiH/YXDaoxJtr9+SxLm2moe25HKmIAjJX7hGEWJyrQrDtPoXWHCbut3ChA7lMYRS085RZA\n cXvZCYK36V6diJbhuz4O3UMt6lwiCo8cQYcLVkgxAAw/vrabHUivVRIZZDwFtl4+mBmQZNOmnp4\n FwFfciCgj9QfBRWEj7FCEgQtfi2IK5c73+N+ZijtwGWUACdOrKPeiUf5/peG5oZk7FVzQxKWb2K\n wv27Agjc4NMO+qqvCMmYla/hH7T23eYZNsMSal97+xl7ptL7IG7d0ir7Nli6wKdzM","X-Received":["by 2002:a05:6214:c8b:b0:89c:d639:e7be with SMTP id\n 6a1803df08f44-8b028162c61mr350602206d6.5.1777041379313;\n Fri, 24 Apr 2026 07:36:19 -0700 (PDT)","by 2002:a05:6214:c8b:b0:89c:d639:e7be with SMTP id\n 6a1803df08f44-8b028162c61mr350601806d6.5.1777041378866;\n Fri, 24 Apr 2026 07:36:18 -0700 (PDT)"],"From":"Patrick Palka <ppalka@redhat.com>","X-Google-Original-From":"Patrick Palka <patrick@idea>","Date":"Fri, 24 Apr 2026 10:36:17 -0400 (EDT)","To":"=?iso-8859-2?q?Tomasz_Kami=F1ski?= <tkaminsk@redhat.com>","cc":"libstdc++@gcc.gnu.org, gcc-patches@gcc.gnu.org,\n Patrick Palka <ppalka@redhat.com>","Subject":"Re: [PATCH v2] libsdc++: Restore check for validity of std::get for\n elements_view.","In-Reply-To":"<20260424143332.2133358-1-tkaminsk@redhat.com>","Message-ID":"<3d3ae93e-7946-5e6f-3f2f-0a49274c8d1c@idea>","References":"<80063e98-c765-7b32-d582-92b20c013f5d@idea>\n <20260424143332.2133358-1-tkaminsk@redhat.com>","MIME-Version":"1.0","X-Mimecast-Spam-Score":"0","X-Mimecast-MFC-PROC-ID":"ggGdeNRppman890VvJzS30VO0wP-SrQ3JQJ_L4ODrVA_1777041379","X-Mimecast-Originator":"redhat.com","Content-Type":"multipart/mixed;\n boundary=\"8323329-1404741092-1777041378=:113381\"","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"}},{"id":3682064,"web_url":"http://patchwork.ozlabs.org/comment/3682064/","msgid":"<CACb0b4m6PPWHk2rOPBsiqogu8zb1ZnFdQzU6Z-4sOHjbaiXg4A@mail.gmail.com>","list_archive_url":null,"date":"2026-04-24T14:50:55","subject":"Re: [PATCH v2] libsdc++: Restore check for validity of std::get for\n elements_view.","submitter":{"id":48004,"url":"http://patchwork.ozlabs.org/api/people/48004/","name":"Jonathan Wakely","email":"jwakely@redhat.com"},"content":"On Fri, 24 Apr 2026 at 15:33, Tomasz Kamiński <tkaminsk@redhat.com> wrote:\n>\n> Resolves LWG3797, \"elements_view insufficiently constrained\".\n>\n> When P2165R4 updated __has_tuple_element in C++23 to reuse __tuple_like\n> concept, it dropped the requirement of validity of get, assuming that for\n> tuple_like type with size of N, get<I> on lvalue is well-formed for any I < N.\n> This however does not hold for ranges::subrange (tuple-like of size 2) with\n> move-only iterator, for which get can only be applied on rvalue. In consequence\n> constrains allowed instantiating elements_view for range of such subrange,\n> but instantiating it's iterator lead to hard error from iterator_category\n> computation.\n>\n> This patch applies the requirements on validity of get also in C++23 and\n> later standard modes.\n>\n> libstdc++-v3/ChangeLog:\n>\n>         * include/std/ranges (__detail::__has_tuple_element): Check\n>         if std::get<_Nm>(__t) returns referenceable type also for C++23\n>         and later.\n>         * testsuite/std/ranges/adaptors/elements.cc: Add test covering\n>         vector of ranges::subrange with move-only iterator.\n>\n> Reviewed-by: Patrick Palka <ppalka@redhat.com>\n> Signed-off-by: Tomasz Kamiński <tkaminsk@redhat.com>\n> ---\n> v2 applies suggestion from Patrick:\n>  - keep seprate defintion of __has_tuple_element for pre/post C++23\n>  - add mention of LWG3797 in comment\n>\n> Tested on x86_654-linux. OK for trunk?\n>\n>  libstdc++-v3/include/std/ranges                  |  9 ++++++++-\n>  .../testsuite/std/ranges/adaptors/elements.cc    | 16 ++++++++++++++++\n>  2 files changed, 24 insertions(+), 1 deletion(-)\n>\n> diff --git a/libstdc++-v3/include/std/ranges b/libstdc++-v3/include/std/ranges\n> index 55d3c520ba4..7d8b37f8c5c 100644\n> --- a/libstdc++-v3/include/std/ranges\n> +++ b/libstdc++-v3/include/std/ranges\n> @@ -4355,8 +4355,15 @@ namespace views::__adaptor\n>    namespace __detail\n>    {\n>  #if __cpp_lib_tuple_like // >= C++23\n> +    // _GLIBCXX_RESOLVE_LIB_DEFECTS\n> +    // 3797. elements_view insufficiently constrained\n>      template<typename _Tp, size_t _Nm>\n> -    concept __has_tuple_element = __tuple_like<_Tp> && _Nm < tuple_size_v<_Tp>;\n> +    concept __has_tuple_element = __tuple_like<_Tp> && _Nm < tuple_size_v<_Tp>\n> +      && requires(_Tp __t)\n> +        {\n> +          { std::get<_Nm>(__t) }\n> +            -> convertible_to<const tuple_element_t<_Nm, _Tp>&>;\n> +        };\n\nI like Patrick's suggestion, I agree this seems more maintainable.\n\nOK for trunk, thanks.\n\n\n>  #else\n>      template<typename _Tp, size_t _Nm>\n>      concept __has_tuple_element = requires(_Tp __t)\n> diff --git a/libstdc++-v3/testsuite/std/ranges/adaptors/elements.cc b/libstdc++-v3/testsuite/std/ranges/adaptors/elements.cc\n> index 5237d787e7b..d384cfd5adf 100644\n> --- a/libstdc++-v3/testsuite/std/ranges/adaptors/elements.cc\n> +++ b/libstdc++-v3/testsuite/std/ranges/adaptors/elements.cc\n> @@ -27,6 +27,22 @@\n>  namespace ranges = std::ranges;\n>  namespace views = ranges::views;\n>\n> +template<size_t N, typename Rg>\n> +concept can_elements = requires (Rg&& rg)\n> +{ views::elements<0>(rg); };\n> +\n> +static_assert( !can_elements<0, std::vector<int>> );\n> +static_assert( can_elements<0, std::tuple<int>[4]> );\n> +static_assert( can_elements<1, std::vector<std::pair<int, int>>> );\n> +\n> +// Test LWG 3797. elements_view insufficiently constrained\n> +using move_only_iter_range = __gnu_test::test_input_range_nocopy<int>;\n> +using move_only_iter_subrange = ranges::subrange<\n> +  ranges::iterator_t<move_only_iter_range>,\n> +  ranges::sentinel_t<move_only_iter_range>>;\n> +static_assert( can_elements<0, std::vector<ranges::subrange<int*>>> );\n> +static_assert( !can_elements<0, std::vector<move_only_iter_subrange>> );\n> +\n>  void\n>  test01()\n>  {\n> --\n> 2.53.0\n>","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=U4dNB7Lx;\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=redhat.com header.i=@redhat.com header.a=rsa-sha256\n header.s=mimecast20190719 header.b=U4dNB7Lx","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\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 4g2GC74ckDz1yD5\n\tfor <incoming@patchwork.ozlabs.org>; Sat, 25 Apr 2026 00:51:58 +1000 (AEST)","from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id D1ED74BB58B0\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 24 Apr 2026 14:51:55 +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 EB86E4BB58E8\n for <gcc-patches@gcc.gnu.org>; Fri, 24 Apr 2026 14:51:14 +0000 (GMT)","from mail-yx1-f69.google.com (mail-yx1-f69.google.com\n [74.125.224.69]) by relay.mimecast.com with ESMTP with STARTTLS\n (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id\n us-mta-160-P36z5XRIPwS-tcISGDWZsw-1; Fri, 24 Apr 2026 10:51:13 -0400","by mail-yx1-f69.google.com with SMTP id\n 956f58d0204a3-65014989b1eso15985191d50.1\n for <gcc-patches@gcc.gnu.org>; Fri, 24 Apr 2026 07:51:13 -0700 (PDT)"],"DKIM-Filter":["OpenDKIM Filter v2.11.0 sourceware.org D1ED74BB58B0","OpenDKIM Filter v2.11.0 sourceware.org EB86E4BB58E8"],"DMARC-Filter":"OpenDMARC Filter v1.4.2 sourceware.org EB86E4BB58E8","ARC-Filter":"OpenARC Filter v1.0.0 sourceware.org EB86E4BB58E8","ARC-Seal":"i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1777042275; cv=none;\n b=KT/Hm/YygrfQUuilj3VFVwwKpW2s3G7CdWA4QCa+sINFXH0+xuBPUwUx0fWFYY4TYv4B3N633na/Ly0eE1rkS+3oJ0HKK5+hkSXitP1GhLy3Pps+/7M0NY9RvJZ/z6SeTf1bDegZls4Ro6T9lVicqPjGRWU83ePGoAKv55+0F+s=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=sourceware.org; s=key;\n t=1777042275; c=relaxed/simple;\n bh=Jd8tWU9bKXjQWUvssVTHv+Ej283XacwWoJL7WGdQiTE=;\n h=DKIM-Signature:MIME-Version:From:Date:Message-ID:Subject:To;\n b=CXj5sDWavczrT4X4RmvpFYmDIh8Pja7Pn2HS5NDwNa17+/XTTh3LGo1+8yxRji1M50PZX3R9EVbY+0MSSSQAOXa0d9i06/Qx0cbhrqmuzr7voEcFxdSYlou83K4e9Yus/GCWNQTOp7BZdC09arnAlq8HF4mBS2y1aE0wfJqI6jA=","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=1777042274;\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 in-reply-to:in-reply-to:references:references;\n bh=1DCRFIiVGvDo1FVtAlO+HOU5icziB/86ZbXn9PuneS8=;\n b=U4dNB7Lxqb9/LlYvZDh+QXEKfoFz3pHPGzxY5sqHUpgBqGBkYBKfea5Og2Ua9Ey+xpaXkA\n OpXqwhtCZyjU1AUO6JB4j8Umi55cp+qxFJOb5VZfnZV/zW+AnSYnpf6pHzm61G/btf6/DH\n WuCV2kElJtE7btZTxSu/dQ+pd2ym0gM=","X-MC-Unique":"P36z5XRIPwS-tcISGDWZsw-1","X-Mimecast-MFC-AGG-ID":"P36z5XRIPwS-tcISGDWZsw_1777042272","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1777042272; x=1777647072;\n h=content-transfer-encoding:cc:to:subject:message-id:date:from\n :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from\n :to:cc:subject:date:message-id:reply-to;\n bh=1DCRFIiVGvDo1FVtAlO+HOU5icziB/86ZbXn9PuneS8=;\n b=qHD8aXkc+03xsS88e0Kmc9LFKO8wRHViHA8HOj0HoueSLE1OiaN7jHN2Ie771OilrI\n 1HRVXTVY8mJWC1Hr8BO8NnRL6hPn9vv4riY6qXME0PJ+nOfCoGv2zHR9hUoweDGGH+aA\n TRzuTE6/0yKqIahwKCo2qmiknmMR3T077zGPnWF7GLuLZfWTYEJ/CfUdGUM8N2eg2fG8\n NmIIG7KHMkUNv/phN30OAqpOx8cRkt/bfiQEhW2sskMc+ZrJGADYdCy1K/R8BMqXmOk/\n 4Ik+aYQzrWX7Bg0n+e3fdv5Z+Kz8BzLcexOk9S8VyLKskIrV7qw8wdx0opcHw2jvOtEt\n ijig==","X-Forwarded-Encrypted":"i=1;\n AFNElJ/29yzmeCF6JoDrstYH9su9y2gTBMz5X/q2aLV7AC3X4LuwWz0b43tc36T6hOfSLL0JeLwWtb2gUtVBUQ==@gcc.gnu.org","X-Gm-Message-State":"AOJu0Yx0pmBgaZN8gx/rsOzpHqrKhgiBEuZJr29atTb+0/XNJPZBPaH5\n 7UmBTOc1R7y3cxgx1jtFKbfSGZImJ3RXQULdlcAJEYDlNwmQMlpT+YVcOT+HvejEuvlIAjhmy5l\n OR6gyQMlCPGonhKc/xsbZ4Z+9Gk+giz13UjBVow7oYtQ+7XQ3IhFO8oPRffVg1/wU2HjtUlsjV9\n owWMk2IQd95jWp7/Hk/6vwF2Ts+y1utDg5nA==","X-Gm-Gg":"AeBDieuLMWp/mPKENvsOE+7GPXXKc835OnbzYvHn5VktObaz5mFinF0gGq9OtroMyL+\n rdlRXTOtCmW+Oq13liCbOmuLkFI0aaw/UC6lBvhYP+yX6YHGdxt2egee2k2qRQwJ9pxXIQZw7SC\n CFliODdyhbTgBBtqmH+ArVutf/L3Vp3iaeXk+ckqYBxL7HCevnUuAOcOFjYzcG9YrgjSjX/2+7J\n uYLYAYzfwKithpbq/NLZWjFkDn43ykL81DomnSAJLkTkQUCksh9rhakpHBA+aF8lFGN8bUdi6x1\n mg==","X-Received":["by 2002:a53:a844:0:b0:64e:9cf7:95a4 with SMTP id\n 956f58d0204a3-65310b306e0mr20113175d50.52.1777042272423;\n Fri, 24 Apr 2026 07:51:12 -0700 (PDT)","by 2002:a53:a844:0:b0:64e:9cf7:95a4 with SMTP id\n 956f58d0204a3-65310b306e0mr20113160d50.52.1777042271990; Fri, 24 Apr 2026\n 07:51:11 -0700 (PDT)"],"MIME-Version":"1.0","References":"<80063e98-c765-7b32-d582-92b20c013f5d@idea>\n <20260424143332.2133358-1-tkaminsk@redhat.com>","In-Reply-To":"<20260424143332.2133358-1-tkaminsk@redhat.com>","From":"Jonathan Wakely <jwakely@redhat.com>","Date":"Fri, 24 Apr 2026 15:50:55 +0100","X-Gm-Features":"AQROBzBGgPIH_reD0QLLV_cEDsdP7DxWrHPtZpET7aX51nw6EFR3zpRXfcc9DvM","Message-ID":"\n <CACb0b4m6PPWHk2rOPBsiqogu8zb1ZnFdQzU6Z-4sOHjbaiXg4A@mail.gmail.com>","Subject":"Re: [PATCH v2] libsdc++: Restore check for validity of std::get for\n elements_view.","To":"=?utf-8?q?Tomasz_Kami=C5=84ski?= <tkaminsk@redhat.com>","Cc":"libstdc++@gcc.gnu.org, gcc-patches@gcc.gnu.org,\n Patrick Palka <ppalka@redhat.com>","X-Mimecast-Spam-Score":"0","X-Mimecast-MFC-PROC-ID":"Gu-jBMgM_1nGbWGaXhELY5LQC-4gTtQkBRzK61G6MKg_1777042272","X-Mimecast-Originator":"redhat.com","Content-Type":"text/plain; charset=\"UTF-8\"","Content-Transfer-Encoding":"quoted-printable","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"}}]