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.129.124]) by sourceware.org (Postfix) with ESMTPS id B8D683858D1E for ; Tue, 18 Apr 2023 08:56:47 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org B8D683858D1E Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=redhat.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=redhat.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1681808207; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=nwjfF966RJ5KmlECH3AL91wPeq5o0oAngfnTEn+B+2s=; b=H5xrl1yGxBWpMkOwZOWByK0eIrcjFGoV9CPjdItXgKjQQq3nxPAaD4qBU/FvT2gSYyFqDK xGJI+8qHkCChN2hsx/O18X0Gjeuu2STMqK0cPXBqWY1XnEGyEo3AOZw6fqXv/BbJc4Vlcw hiSkyEDlvF9r1JDWktoILw1ofV96mms= Received: from mail-lj1-f200.google.com (mail-lj1-f200.google.com [209.85.208.200]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-629-W5DPgC0-N6Oq_2n130MWoQ-1; Tue, 18 Apr 2023 04:56:46 -0400 X-MC-Unique: W5DPgC0-N6Oq_2n130MWoQ-1 Received: by mail-lj1-f200.google.com with SMTP id 38308e7fff4ca-2a8afc438dcso8228021fa.2 for ; Tue, 18 Apr 2023 01:56:45 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1681808204; x=1684400204; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=nwjfF966RJ5KmlECH3AL91wPeq5o0oAngfnTEn+B+2s=; b=GT4AMbLUakySDrG0ndpT1joYUXiMbCvrXVTxBJwrsNA82yb3LaXG76mPYMUfVowpV5 zj8CCdIAdBQCvmHCyo1ekO8L51LOJV63XuT4JjbQ/3Qn6wkHz+cjtSzPH7LlMyl6e/cj hs4KvobsBLITDO3CFbczckxMEM9diNJiQtDqnHo/DjVPh33h/6AmCbKyu7/sWFCExKwh s9jdtu68fSJvwvHJCodEfJapLffFvblF3aBhTtmgUedFY5TdaZUjVepyWb4sTkDbLvKe pFi/B6FZrmXTmvZfhLAwglMGX/fm6xPSTCkScNZecE5WumK7tVm6Q8asxzqNONWeE0CX TUHg== X-Gm-Message-State: AAQBX9ctxsY9IWoTmuBz3b0NiUT2K9eUE04llkVEJGP817wouEH1FXl+ ihBsOiWok6HFGGEAHb6FnhI7HJPP5VLlTMKZOX6ENQMfO+IvVnHE0IvRQERcVS4/9E1D6jPFT5f QjJdIoxiEAdiQKT23VvgWYRiCxivLxl0= X-Received: by 2002:ac2:532c:0:b0:4ec:a08d:3952 with SMTP id f12-20020ac2532c000000b004eca08d3952mr3054553lfh.8.1681808204727; Tue, 18 Apr 2023 01:56:44 -0700 (PDT) X-Google-Smtp-Source: AKy350Y8lzQA3mgJSdF3LWAFwNv5PbDthNcP66xFnv71+bh6Rr5qzmZO/kYhVrxnhORwLH5V1/9eEErs4aqxPwE9OqU= X-Received: by 2002:ac2:532c:0:b0:4ec:a08d:3952 with SMTP id f12-20020ac2532c000000b004eca08d3952mr3054552lfh.8.1681808204532; Tue, 18 Apr 2023 01:56:44 -0700 (PDT) MIME-Version: 1.0 References: <20230417034540.2645965-1-ppalka@redhat.com> In-Reply-To: <20230417034540.2645965-1-ppalka@redhat.com> From: Jonathan Wakely Date: Tue, 18 Apr 2023 09:56:33 +0100 Message-ID: Subject: Re: [PATCH] libstdc++: Adding missing feature-test macros for C++23 ranges algos To: Patrick Palka Cc: gcc-patches@gcc.gnu.org, libstdc++@gcc.gnu.org, Jakub Jelinek X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-12.3 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_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: On Mon, 17 Apr 2023 at 04:46, Patrick Palka via Libstdc++ wrote: > > This patch also renames __cpp_lib_fold to __cpp_lib_ranges_fold > as per the current draft standard. OK, but this needs RM approval to push to gcc-13 > > libstdc++-v3/ChangeLog: > > * include/bits/ranges_algo.h (__cpp_lib_ranges_contains): > Define for C++23. > (__cpp_lib_ranges_iota): Likewise. > (__cpp_lib_ranges_find_last): Likewise. > (__cpp_lib_fold): Rename to ... > (__cpp_lib_ranges_fold): ... this. > * include/std/version: As above. > * testsuite/25_algorithms/fold_left/1.cc: Adjust after > renaming __cpp_lib_fold. > * testsuite/std/ranges/version_c++23.cc: Verify values > of the above feature-test macros. > --- > libstdc++-v3/include/bits/ranges_algo.h | 9 ++++++++- > libstdc++-v3/include/std/version | 5 ++++- > .../testsuite/25_algorithms/fold_left/1.cc | 4 ++-- > .../testsuite/std/ranges/version_c++23.cc | 16 ++++++++++++++++ > 4 files changed, 30 insertions(+), 4 deletions(-) > > diff --git a/libstdc++-v3/include/bits/ranges_algo.h b/libstdc++-v3/include/bits/ranges_algo.h > index f041ff16b0e..410d3ae1dd8 100644 > --- a/libstdc++-v3/include/bits/ranges_algo.h > +++ b/libstdc++-v3/include/bits/ranges_algo.h > @@ -3468,6 +3468,9 @@ namespace ranges > inline constexpr __prev_permutation_fn prev_permutation{}; > > #if __cplusplus > 202002L > + > +#define __cpp_lib_ranges_contains 202207L > + > struct __contains_fn > { > template _Sent, > @@ -3521,6 +3524,8 @@ namespace ranges > > inline constexpr __contains_subrange_fn contains_subrange{}; > > +#define __cpp_lib_ranges_iota 202202L > + > template > struct out_value_result > { > @@ -3569,6 +3574,8 @@ namespace ranges > > inline constexpr __iota_fn iota{}; > > +#define __cpp_lib_ranges_find_last 202207L > + > struct __find_last_fn > { > template _Sent, typename _Tp, typename _Proj = identity> > @@ -3695,7 +3702,7 @@ namespace ranges > > inline constexpr __find_last_if_not_fn find_last_if_not{}; > > -#define __cpp_lib_fold 202207L > +#define __cpp_lib_ranges_fold 202207L > > template > struct in_value_result > diff --git a/libstdc++-v3/include/std/version b/libstdc++-v3/include/std/version > index 9f31f25f1e9..027e5711ec5 100644 > --- a/libstdc++-v3/include/std/version > +++ b/libstdc++-v3/include/std/version > @@ -341,7 +341,10 @@ > #define __cpp_lib_ranges_as_rvalue 202207L > #define __cpp_lib_ranges_as_const 202207L > #define __cpp_lib_ranges_enumerate 202302L > -#define __cpp_lib_fold 202207L > +#define __cpp_lib_ranges_contains 202207L > +#define __cpp_lib_ranges_iota 202202L > +#define __cpp_lib_ranges_find_last 202207L > +#define __cpp_lib_ranges_fold 202207L > #if __cpp_constexpr_dynamic_alloc > # if _GLIBCXX_HOSTED > # define __cpp_lib_constexpr_bitset 202202L > diff --git a/libstdc++-v3/testsuite/25_algorithms/fold_left/1.cc b/libstdc++-v3/testsuite/25_algorithms/fold_left/1.cc > index 5cc91b67d27..4041d13315f 100644 > --- a/libstdc++-v3/testsuite/25_algorithms/fold_left/1.cc > +++ b/libstdc++-v3/testsuite/25_algorithms/fold_left/1.cc > @@ -5,8 +5,8 @@ > #include > #include > > -#if __cpp_lib_fold != 202207L > -# error "Feature-test macro __cpp_lib_fold has wrong value in " > +#if __cpp_lib_ranges_fold != 202207L > +# error "Feature-test macro __cpp_lib_ranges_fold has wrong value in " > #endif > > namespace ranges = std::ranges; > diff --git a/libstdc++-v3/testsuite/std/ranges/version_c++23.cc b/libstdc++-v3/testsuite/std/ranges/version_c++23.cc > index e2c14edc8ef..04609bb602c 100644 > --- a/libstdc++-v3/testsuite/std/ranges/version_c++23.cc > +++ b/libstdc++-v3/testsuite/std/ranges/version_c++23.cc > @@ -52,3 +52,19 @@ > #if __cpp_lib_ranges_enumerate != 202302L > # error "Feature-test macro __cpp_lib_ranges_enumerate has wrong value in " > #endif > + > +#if __cpp_lib_ranges_contains != 202207L > +# error "Feature-test macro __cpp_lib_ranges_contains has wrong value in " > +#endif > + > +#if __cpp_lib_ranges_iota != 202202L > +# error "Feature-test macro __cpp_lib_ranges_iota has wrong value in " > +#endif > + > +#if __cpp_lib_ranges_find_last != 202207L > +# error "Feature-test macro __cpp_lib_ranges_find_last has wrong value in " > +#endif > + > +#if __cpp_lib_ranges_fold != 202207L > +# error "Feature-test macro __cpp_lib_ranges_fold has wrong value in " > +#endif > -- > 2.40.0.335.g9857273be0 >