On Wed, 5 Apr 2023 at 13:09, Jonathan Wakely <jwak...@redhat.com> wrote:
>
> On Wed, 5 Apr 2023 at 12:36, Arsen Arsenović <ar...@aarsen.me> wrote:
> >
> >
> > Jonathan Wakely <jwak...@redhat.com> writes:
> >
> > >> [snip...]
> > >>+/* Duplicate definition with unique_ptr.h.  */
> > >>+#if __cplusplus > 202002L && defined(__cpp_constexpr_dynamic_alloc)
> > >>+# define __cpp_lib_constexpr_memory 202202L
> > >>+#elif __cplusplus > 201703L
> > >>+# include <concepts>
> > >
> > > Including <concepts> is unrelated to the FTM, and should always be
> > > done for >= C++17, but this change means it's not included for the
> > > first block.
> > >
> > > Please leave the #include with the _Safe_iterator_base declaration.
> >
> > Fixed:
> >
> > diff --git a/libstdc++-v3/include/bits/ptr_traits.h 
> > b/libstdc++-v3/include/bits/ptr_traits.h
> > index dc42a743c96..8a919ec1090 100644
> > --- a/libstdc++-v3/include/bits/ptr_traits.h
> > +++ b/libstdc++-v3/include/bits/ptr_traits.h
> > @@ -34,12 +34,15 @@
> >
> >  #include <bits/move.h>
> >
> > +/* Duplicate definition with unique_ptr.h.  */
> > +#if __cplusplus > 202002L && defined(__cpp_constexpr_dynamic_alloc)
> > +# define __cpp_lib_constexpr_memory 202202L
> > +#elif __cplusplus > 201703L
> > +# define __cpp_lib_constexpr_memory 201811L
> > +#endif
> > +
> >  #if __cplusplus > 201703L
> >  #include <concepts>
> > -# ifndef __cpp_lib_constexpr_memory
> > -// Defined to a newer value in bits/unique_ptr.h for C++23
> > -#  define __cpp_lib_constexpr_memory 201811L
> > -# endif
> >  namespace __gnu_debug { struct _Safe_iterator_base; }
> >  #endif
> >
> > >> [snip...]
> > >
> > > Pleae keep them in alphabetical order (within their relevant
> > > blocks/groups).
> >
> > I didn't even notice the ordering - apologies.
> >
> > Updated patch:
> >
> >
> > The testsuite is running on my end, so the above is technically not
> > tested yet, but it should be the same logic unless I reordered something
> > wrong.
>
> OK for trunk, thanks

Oops, I meant to say OK if testing passes, obviously.

>
> I note that this moves __cpp_lib_to_chars from being defined for C++17
> to being defined for C++14. That's OK, because it's actually true for
> libstdc++ as noted by the comment at the top of <charconv>.

Reply via email to