From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by sourceware.org (Postfix) with ESMTP id 204953857023 for ; Fri, 17 Sep 2021 19:49:15 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 204953857023 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-20-BedAXWs-Ote3mRIAz5On4A-1; Fri, 17 Sep 2021 15:49:13 -0400 X-MC-Unique: BedAXWs-Ote3mRIAz5On4A-1 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 476CB10247B8; Fri, 17 Sep 2021 19:48:44 +0000 (UTC) Received: from localhost (unknown [10.33.36.240]) by smtp.corp.redhat.com (Postfix) with ESMTP id EAA462C175; Fri, 17 Sep 2021 19:48:43 +0000 (UTC) Date: Fri, 17 Sep 2021 20:48:43 +0100 From: Jonathan Wakely To: libstdc++@gcc.gnu.org, gcc-patches@gcc.gnu.org Subject: Re: [committed] libstdc++: Fix last std::tuple constructor missing 'constexpr' [PR102270] Message-ID: References: MIME-Version: 1.0 In-Reply-To: X-Clacks-Overhead: GNU Terry Pratchett X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: multipart/mixed; boundary="JDx5jXuqhD3sXnvc" Content-Disposition: inline X-Spam-Status: No, score=-14.0 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2, SPF_HELO_NONE, SPF_NONE, TXREP, URI_HEX autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: libstdc++@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libstdc++ mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 17 Sep 2021 19:49:17 -0000 --JDx5jXuqhD3sXnvc Content-Type: text/plain; charset=us-ascii; format=flowed Content-Disposition: inline On 17/09/21 20:47 +0100, Jonathan Wakely wrote: >On 17/09/21 12:25 +0100, Jonathan Wakely wrote: >>On 16/09/21 23:07 +0100, Jonathan Wakely wrote: >>>Signed-off-by: Jonathan Wakely >>> >>>libstdc++-v3/ChangeLog: >>> >>> PR libstdc++/102270 >>> * include/std/tuple (_Head_base, _Tuple_impl): Add >>> _GLIBCXX20_CONSTEXPR to allocator-extended constructors. >>> (tuple<>::swap(tuple&)): Add _GLIBCXX20_CONSTEXPR. >>> * testsuite/20_util/tuple/cons/102270.C: New test. >> >>Oops, this test has a .C extension, and so doesn't actually run (and >>if I rename it to 102270.cc it fails). >> >>Fix incoming ... > >Fixed at r12-3637. > >Tested x86_64-linux. Committed to trunk. With the patch attached this time ... --JDx5jXuqhD3sXnvc Content-Type: text/x-patch; charset=us-ascii Content-Disposition: attachment; filename="patch.txt" commit 1fa2c5a695bb962ffcf8abed49f69cdcc59d0e61 Author: Jonathan Wakely Date: Fri Sep 17 12:27:02 2021 libstdc++: Fix last std::tuple constructor missing 'constexpr' [PR102270] Also rename the test so it actually runs. Signed-off-by: Jonathan Wakely libstdc++-v3/ChangeLog: PR libstdc++/102270 * include/std/tuple (_Tuple_impl): Add constexpr to constructor missed in previous patch. * testsuite/20_util/tuple/cons/102270.C: Moved to... * testsuite/20_util/tuple/cons/102270.cc: ...here. * testsuite/util/testsuite_allocator.h (SimpleAllocator): Add constexpr to constructor so it can be used for C++20 tests. diff --git a/libstdc++-v3/include/std/tuple b/libstdc++-v3/include/std/tuple index 6f0dc6346e1..120c80a2b78 100644 --- a/libstdc++-v3/include/std/tuple +++ b/libstdc++-v3/include/std/tuple @@ -330,6 +330,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION { } template + _GLIBCXX20_CONSTEXPR _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, const _Head& __head, const _Tail&... __tail) : _Inherited(__tag, __a, __tail...), diff --git a/libstdc++-v3/testsuite/20_util/tuple/cons/102270.C b/libstdc++-v3/testsuite/20_util/tuple/cons/102270.cc similarity index 95% rename from libstdc++-v3/testsuite/20_util/tuple/cons/102270.C rename to libstdc++-v3/testsuite/20_util/tuple/cons/102270.cc index 998329817c7..5500cacab6d 100644 --- a/libstdc++-v3/testsuite/20_util/tuple/cons/102270.C +++ b/libstdc++-v3/testsuite/20_util/tuple/cons/102270.cc @@ -56,6 +56,9 @@ constexpr bool construct_using_allocator() std::tuple t1a1b(std::allocator_arg, a, 1, i, 1, i); + const int c = 0; + std::tuple tii(std::allocator_arg, a, c, c); + return true; } static_assert( construct_using_allocator() ); diff --git a/libstdc++-v3/testsuite/util/testsuite_allocator.h b/libstdc++-v3/testsuite/util/testsuite_allocator.h index 1f7912ea6eb..b5b402858a6 100644 --- a/libstdc++-v3/testsuite/util/testsuite_allocator.h +++ b/libstdc++-v3/testsuite/util/testsuite_allocator.h @@ -514,7 +514,7 @@ namespace __gnu_test { typedef Tp value_type; - SimpleAllocator() noexcept { } + constexpr SimpleAllocator() noexcept { } template SimpleAllocator(const SimpleAllocator&) { } --JDx5jXuqhD3sXnvc--