On Fri, 16 Jul 2021 at 03:42, Jason Merrill via Libstdc++ <libstd...@gcc.gnu.org> wrote: > > diff --git a/libstdc++-v3/include/std/version > > b/libstdc++-v3/include/std/version > > index 27bcd32cb60..d5e155db48b 100644 > > --- a/libstdc++-v3/include/std/version > > +++ b/libstdc++-v3/include/std/version > > @@ -140,6 +140,9 @@ > > #define __cpp_lib_filesystem 201703 > > #define __cpp_lib_gcd 201606 > > #define __cpp_lib_gcd_lcm 201606 > > +#ifdef __GCC_DESTRUCTIVE_SIZE > > +# define __cpp_lib_hardware_interference_size 201703L > > +#endif > > #define __cpp_lib_hypot 201603 > > #define __cpp_lib_invoke 201411L > > #define __cpp_lib_lcm 201606 > > diff --git a/libstdc++-v3/libsupc++/new b/libstdc++-v3/libsupc++/new > > index 3349b13fd1b..7bc67a6cb02 100644 > > --- a/libstdc++-v3/libsupc++/new > > +++ b/libstdc++-v3/libsupc++/new > > @@ -183,9 +183,9 @@ inline void operator delete[](void*, void*) > > _GLIBCXX_USE_NOEXCEPT { } > > } // extern "C++" > > > > #if __cplusplus >= 201703L > > -#ifdef _GLIBCXX_HAVE_BUILTIN_LAUNDER > > namespace std > > { > > +#ifdef _GLIBCXX_HAVE_BUILTIN_LAUNDER > > #define __cpp_lib_launder 201606 > > /// Pointer optimization barrier [ptr.launder] > > template<typename _Tp> > > @@ -205,8 +205,14 @@ namespace std > > void launder(const void*) = delete; > > void launder(volatile void*) = delete; > > void launder(const volatile void*) = delete; > > -} > > #endif // _GLIBCXX_HAVE_BUILTIN_LAUNDER > > + > > +#ifdef __GCC_DESTRUCTIVE_SIZE > > +# define __cpp_lib_hardware_interference_size 201703L > > + inline constexpr size_t hardware_destructive_interference_size = > > __GCC_DESTRUCTIVE_SIZE; > > + inline constexpr size_t hardware_constructive_interference_size = > > __GCC_CONSTRUCTIVE_SIZE; > > +#endif // __GCC_DESTRUCTIVE_SIZE > > +} > > #endif // C++17 > > > > #if __cplusplus > 201703L
Putting aside my dislike of the entire feature, the libstdc++ parts are fine, thanks.