On Sat, 2 Aug 2025, 21:06 Jakub Jelinek, <ja...@redhat.com> wrote: > Hi! > > I've tried compiling > #include <bits/stdc++.h> > with -std=c++26 -fdump-lang-all > and > for i in `grep ^Class.std::[^_] *.C.001l.class | sed 's/^Class //;s/[< > ].*$//' | sort -u | grep -v ::.*::`; do grep -q $i > /usr/src/gcc/libstdc++-v3/src/c++23/std.cc.in || echo $i; done > This printed > std::auto_ptr > std::binary_function > std::owner_equal > std::owner_hash > std::unary_function > where auto_ptr, binary_function and unary_function have been removed in > earlier > versions of C++ and owner_equal and owner_hash are missing. > > The following patch adds them. > > Wonder how to automatically discover other missing exports (like in > PR121373 > std::byteswap), maybe one could dig that stuff somehow from the raw > dump (look for identifiers in std namespace (and perhaps inlined namespaces > thereof at least) which don't start with underscore. > > Anyway, ok for trunk? >
OK, thanks > 2025-08-02 Jakub Jelinek <ja...@redhat.com> > > * src/c++23/std.cc.in (std::owner_equal, std::owner_hash): Export. > > --- libstdc++-v3/src/c++23/std.cc.in.jj 2025-07-27 17:19:23.683127026 +0200 > +++ libstdc++-v3/src/c++23/std.cc.in 2025-08-02 20:50:48.301748803 > +0200 > @@ -1982,6 +1982,10 @@ export namespace std > using std::polymorphic; > namespace pmr { using std::pmr::polymorphic; } > #endif > +#if __cpp_lib_smart_ptr_owner_equality > + using std::owner_equal; > + using std::owner_hash; > +#endif > } > > // 20.4 <memory_resource> > > Jakub > >