On Fedora 31, r9-8540 gave Executing on host: /export/gnu/import/git/gcc-test-release-1-ia32/bld/./gcc/xg++ -shared-libgcc -B/export/gnu/import/git/gcc-test-release-1-ia32/bld/./gcc -nostdinc++ -L/export/gnu/import/git/gcc-test-release-1-ia32/bld/i686-linux/libstdc++-v3/src -L/export/gnu/import/git/gcc-test-release-1-ia32/bld/i686-linux/libstdc++-v3/src/.libs -L/export/gnu/import/git/gcc-test-release-1-ia32/bld/i686-linux/libstdc++-v3/libsupc++/.libs -B/usr/9.3.1/i686-linux/bin/ -B/usr/9.3.1/i686-linux/lib/ -isystem /usr/9.3.1/i686-linux/include -isystem /usr/9.3.1/i686-linux/sys-include -fchecking=1 -B/export/gnu/import/git/gcc-test-release-1-ia32/bld/i686-linux/./libstdc++-v3/src/.libs -fmessage-length=0 -fno-show-column -ffunction-sections -fdata-sections -fcf-protection -mshstk -g -O2 -D_GNU_SOURCE -DLOCALEDIR="." -nostdinc++ -I/export/gnu/import/git/gcc-test-release-1-ia32/bld/i686-linux/libstdc++-v3/include/i686-linux -I/export/gnu/import/git/gcc-test-release-1-ia32/bld/i686-linux/libstdc++-v3/include -I/export/gnu/import/git/gcc-test-release-1-ia32/src-9/libstdc++-v3/libsupc++ -I/export/gnu/import/git/gcc-test-release-1-ia32/src-9/libstdc++-v3/include/backward -I/export/gnu/import/git/gcc-test-release-1-ia32/src-9/libstdc++-v3/testsuite/util /export/gnu/import/git/gcc-test-release-1-ia32/src-9/libstdc++-v3/testsuite/experimental/net/executor/1.cc -include bits/stdc++.h -fno-diagnostics-show-caret -fdiagnostics-color=never ./libtestc++.a -Wl,--gc-sections -L/export/gnu/import/git/gcc-test-release-1-ia32/bld/i686-linux/libstdc++-v3/src/filesystem/.libs -lm -o ./1.exe (timeout = 600) spawn -ignore SIGHUP /export/gnu/import/git/gcc-test-release-1-ia32/bld/./gcc/xg++ -shared-libgcc -B/export/gnu/import/git/gcc-test-release-1-ia32/bld/./gcc -nostdinc++ -L/export/gnu/import/git/gcc-test-release-1-ia32/bld/i686-linux/libstdc++-v3/src -L/export/gnu/import/git/gcc-test-release-1-ia32/bld/i686-linux/libstdc++-v3/src/.libs -L/export/gnu/import/git/gcc-test-release-1-ia32/bld/i686-linux/libstdc++-v3/libsupc++/.libs -B/usr/9.3.1/i686-linux/bin/ -B/usr/9.3.1/i686-linux/lib/ -isystem /usr/9.3.1/i686-linux/include -isystem /usr/9.3.1/i686-linux/sys-include -fchecking=1 -B/export/gnu/import/git/gcc-test-release-1-ia32/bld/i686-linux/./libstdc++-v3/src/.libs -fmessage-length=0 -fno-show-column -ffunction-sections -fdata-sections -fcf-protection -mshstk -g -O2 -D_GNU_SOURCE -DLOCALEDIR="." -nostdinc++ -I/export/gnu/import/git/gcc-test-release-1-ia32/bld/i686-linux/libstdc++-v3/include/i686-linux -I/export/gnu/import/git/gcc-test-release-1-ia32/bld/i686-linux/libstdc++-v3/include -I/export/gnu/import/git/gcc-test-release-1-ia32/src-9/libstdc++-v3/libsupc++ -I/export/gnu/import/git/gcc-test-release-1-ia32/src-9/libstdc++-v3/include/backward -I/export/gnu/import/git/gcc-test-release-1-ia32/src-9/libstdc++-v3/testsuite/util /export/gnu/import/git/gcc-test-release-1-ia32/src-9/libstdc++-v3/testsuite/experimental/net/executor/1.cc -include bits/stdc++.h -fno-diagnostics-show-caret -fdiagnostics-color=never ./libtestc++.a -Wl,--gc-sections -L/export/gnu/import/git/gcc-test-release-1-ia32/bld/i686-linux/libstdc++-v3/src/filesystem/.libs -lm -o ./1.exe In file included from /export/gnu/import/git/gcc-test-release-1-ia32/src-9/libstdc++-v3/testsuite/experimental/net/executor/1.cc:20: /export/gnu/import/git/gcc-test-release-1-ia32/bld/i686-linux/libstdc++-v3/include/experimental/executor: In instantiation of '_Executor* std::experimental::net::v1::executor::target() [with _Executor = test02()::E]': /export/gnu/import/git/gcc-test-release-1-ia32/src-9/libstdc++-v3/testsuite/experimental/net/executor/1.cc:71: required from here /export/gnu/import/git/gcc-test-release-1-ia32/bld/i686-linux/libstdc++-v3/include/experimental/executor:1112: error: no matching function for call to 'test02()::E::E(const void*&)' /export/gnu/import/git/gcc-test-release-1-ia32/src-9/libstdc++-v3/testsuite/experimental/net/executor/1.cc:45: note: candidate: 'constexpr test02()::E::E(const test02()::E&)' /export/gnu/import/git/gcc-test-release-1-ia32/src-9/libstdc++-v3/testsuite/experimental/net/executor/1.cc:45: note: no known conversion for argument 1 from 'const void*' to 'const test02()::E&' /export/gnu/import/git/gcc-test-release-1-ia32/src-9/libstdc++-v3/testsuite/experimental/net/executor/1.cc:45: note: candidate: 'constexpr test02()::E::E(test02()::E&&)' /export/gnu/import/git/gcc-test-release-1-ia32/src-9/libstdc++-v3/testsuite/experimental/net/executor/1.cc:45: note: no known conversion for argument 1 from 'const void*' to 'test02()::E&&' In file included from /export/gnu/import/git/gcc-test-release-1-ia32/src-9/libstdc++-v3/testsuite/experimental/net/executor/1.cc:20: /export/gnu/import/git/gcc-test-release-1-ia32/bld/i686-linux/libstdc++-v3/include/experimental/executor: In instantiation of '_Executor* std::experimental::net::v1::executor::target() [with _Executor = const test02()::E]': /export/gnu/import/git/gcc-test-release-1-ia32/src-9/libstdc++-v3/testsuite/experimental/net/executor/1.cc:72: required from here /export/gnu/import/git/gcc-test-release-1-ia32/bld/i686-linux/libstdc++-v3/include/experimental/executor:1112: error: no matching function for call to 'test02()::E::E(const void*&)' /export/gnu/import/git/gcc-test-release-1-ia32/src-9/libstdc++-v3/testsuite/experimental/net/executor/1.cc:45: note: candidate: 'constexpr test02()::E::E(const test02()::E&)' /export/gnu/import/git/gcc-test-release-1-ia32/src-9/libstdc++-v3/testsuite/experimental/net/executor/1.cc:45: note: no known conversion for argument 1 from 'const void*' to 'const test02()::E&' /export/gnu/import/git/gcc-test-release-1-ia32/src-9/libstdc++-v3/testsuite/experimental/net/executor/1.cc:45: note: candidate: 'constexpr test02()::E::E(test02()::E&&)' /export/gnu/import/git/gcc-test-release-1-ia32/src-9/libstdc++-v3/testsuite/experimental/net/executor/1.cc:45: note: no known conversion for argument 1 from 'const void*' to 'test02()::E&&' In file included from /export/gnu/import/git/gcc-test-release-1-ia32/src-9/libstdc++-v3/testsuite/experimental/net/executor/1.cc:20: /export/gnu/import/git/gcc-test-release-1-ia32/bld/i686-linux/libstdc++-v3/include/experimental/executor: In instantiation of 'struct std::experimental::net::v1::executor::_TgtImpl<test02()::E, std::allocator<void> >': /export/gnu/import/git/gcc-test-release-1-ia32/bld/i686-linux/libstdc++-v3/include/type_traits:1320: required by substitution of 'template<class _From1, class _To1, class> static std::true_type std::__is_convertible_helper<std::experimental::net::v1::executor::_TgtImpl<test02()::E, std::allocator<void> >*, std::experimental::net::v1::executor::_Tgt*, false>::__test<_From1, _To1, <template-parameter-1-3> >(int) [with _From1 = std::experimental::net::v1::executor::_TgtImpl<test02()::E, std::allocator<void> >*; _To1 = std::experimental::net::v1::executor::_Tgt*; <template-parameter-1-3> = <missing>]' /export/gnu/import/git/gcc-test-release-1-ia32/bld/i686-linux/libstdc++-v3/include/type_traits:1329: required from 'struct std::__is_convertible_helper<std::experimental::net::v1::executor::_TgtImpl<test02()::E, std::allocator<void> >*, std::experimental::net::v1::executor::_Tgt*, false>' /export/gnu/import/git/gcc-test-release-1-ia32/bld/i686-linux/libstdc++-v3/include/type_traits:1335: required from 'struct std::is_convertible<std::experimental::net::v1::executor::_TgtImpl<test02()::E, std::allocator<void> >*, std::experimental::net::v1::executor::_Tgt*>' /export/gnu/import/git/gcc-test-release-1-ia32/bld/i686-linux/libstdc++-v3/include/bits/shared_ptr_base.h:927: required from 'struct std::__sp_compatible_with<std::experimental::net::v1::executor::_TgtImpl<test02()::E, std::allocator<void> >*, std::experimental::net::v1::executor::_Tgt*>' /export/gnu/import/git/gcc-test-release-1-ia32/bld/i686-linux/libstdc++-v3/include/bits/shared_ptr_base.h:1094: [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ] /export/gnu/import/git/gcc-test-release-1-ia32/bld/i686-linux/libstdc++-v3/include/type_traits:883: required from 'struct std::is_constructible<std::__shared_ptr<std::experimental::net::v1::executor::_Tgt, __gnu_cxx::_S_atomic>, const std::shared_ptr<std::experimental::net::v1::executor::_TgtImpl<test02()::E, std::allocator<void> > >&>' /export/gnu/import/git/gcc-test-release-1-ia32/bld/i686-linux/libstdc++-v3/include/bits/shared_ptr.h:106: required by substitution of 'template<class _Tp> template<class ... _Args> using _Constructible = typename std::enable_if<std::is_constructible<std::__shared_ptr<_Tp>, _Args ...>::value>::type [with _Args = {const std::shared_ptr<std::experimental::net::v1::executor::_TgtImpl<test02()::E, std::allocator<void> > >&}; _Tp = std::experimental::net::v1::executor::_Tgt]' /export/gnu/import/git/gcc-test-release-1-ia32/bld/i686-linux/libstdc++-v3/include/bits/shared_ptr.h:245: required by substitution of 'template<class _Yp, class> std::shared_ptr<std::experimental::net::v1::executor::_Tgt>::shared_ptr(const std::shared_ptr<_Tp>&) [with _Yp = std::experimental::net::v1::executor::_TgtImpl<test02()::E, std::allocator<void> >; <template-parameter-1-2> = <missing>]' /export/gnu/import/git/gcc-test-release-1-ia32/bld/i686-linux/libstdc++-v3/include/experimental/executor:1200: required from 'std::shared_ptr<std::experimental::net::v1::executor::_Tgt> std::experimental::net::v1::executor::_M_create(_Ex&&, const _Alloc&) [with _Ex = test02()::E; _Alloc = std::allocator<void>]' /export/gnu/import/git/gcc-test-release-1-ia32/bld/i686-linux/libstdc++-v3/include/experimental/executor:1002: required from 'std::experimental::net::v1::executor::executor(_Executor) [with _Executor = test02()::E]' /export/gnu/import/git/gcc-test-release-1-ia32/src-9/libstdc++-v3/testsuite/experimental/net/executor/1.cc:62: required from here /export/gnu/import/git/gcc-test-release-1-ia32/bld/i686-linux/libstdc++-v3/include/experimental/executor:1170: error: conflicting return type specified for 'const void* std::experimental::net::v1::executor::_TgtImpl<_Ex, _Alloc>::target(const std::type_info&) const [with _Ex = test02()::E; _Alloc = std::allocator<void>]' /export/gnu/import/git/gcc-test-release-1-ia32/bld/i686-linux/libstdc++-v3/include/experimental/executor:1138: note: overridden function is 'virtual void* std::experimental::net::v1::executor::_Tgt::target(const std::type_info&) const' In file included from /export/gnu/import/git/gcc-test-release-1-ia32/bld/i686-linux/libstdc++-v3/include/string:41, from /export/gnu/import/git/gcc-test-release-1-ia32/bld/i686-linux/libstdc++-v3/include/bits/locale_classes.h:40, from /export/gnu/import/git/gcc-test-release-1-ia32/bld/i686-linux/libstdc++-v3/include/bits/ios_base.h:41, from /export/gnu/import/git/gcc-test-release-1-ia32/bld/i686-linux/libstdc++-v3/include/ios:42, from /export/gnu/import/git/gcc-test-release-1-ia32/bld/i686-linux/libstdc++-v3/include/istream:38, from /export/gnu/import/git/gcc-test-release-1-ia32/bld/i686-linux/libstdc++-v3/include/sstream:38, from /export/gnu/import/git/gcc-test-release-1-ia32/bld/i686-linux/libstdc++-v3/include/complex:45, from /export/gnu/import/git/gcc-test-release-1-ia32/bld/i686-linux/libstdc++-v3/include/ccomplex:39, from /export/gnu/import/git/gcc-test-release-1-ia32/bld/i686-linux/libstdc++-v3/include/i686-linux/bits/stdc++.h:54, from <command-line>: /export/gnu/import/git/gcc-test-release-1-ia32/bld/i686-linux/libstdc++-v3/include/bits/allocator.h: In instantiation of 'void std::allocator<void>::construct(_Up*, _Args&& ...) [with _Up = std::experimental::net::v1::executor::_TgtImpl<test02()::E, std::allocator<void> >; _Args = {test02()::E, const std::allocator<void>&}]': /export/gnu/import/git/gcc-test-release-1-ia32/bld/i686-linux/libstdc++-v3/include/bits/alloc_traits.h:482: required from 'static void std::allocator_traits<std::allocator<_CharT> >::construct(std::allocator_traits<std::allocator<_CharT> >::allocator_type&, _Up*, _Args&& ...) [with _Up = std::experimental::net::v1::executor::_TgtImpl<test02()::E, std::allocator<void> >; _Args = {test02()::E, const std::allocator<void>&}; _Tp = void; std::allocator_traits<std::allocator<_CharT> >::allocator_type = std::allocator<void>]' /export/gnu/import/git/gcc-test-release-1-ia32/bld/i686-linux/libstdc++-v3/include/bits/shared_ptr_base.h:548: required from 'std::_Sp_counted_ptr_inplace<_Tp, _Alloc, _Lp>::_Sp_counted_ptr_inplace(_Alloc, _Args&& ...) [with _Args = {test02()::E, const std::allocator<void>&}; _Tp = std::experimental::net::v1::executor::_TgtImpl<test02()::E, std::allocator<void> >; _Alloc = std::allocator<void>; __gnu_cxx::_Lock_policy _Lp = __gnu_cxx::_S_atomic]' /export/gnu/import/git/gcc-test-release-1-ia32/bld/i686-linux/libstdc++-v3/include/bits/shared_ptr_base.h:679: required from 'std::__shared_count<_Lp>::__shared_count(_Tp*&, std::_Sp_alloc_shared_tag<_Alloc>, _Args&& ...) [with _Tp = std::experimental::net::v1::executor::_TgtImpl<test02()::E, std::allocator<void> >; _Alloc = std::allocator<void>; _Args = {test02()::E, const std::allocator<void>&}; __gnu_cxx::_Lock_policy _Lp = __gnu_cxx::_S_atomic]' /export/gnu/import/git/gcc-test-release-1-ia32/bld/i686-linux/libstdc++-v3/include/bits/shared_ptr_base.h:1344: required from 'std::__shared_ptr<_Tp, _Lp>::__shared_ptr(std::_Sp_alloc_shared_tag<_Tp>, _Args&& ...) [with _Alloc = std::allocator<void>; _Args = {test02()::E, const std::allocator<void>&}; _Tp = std::experimental::net::v1::executor::_TgtImpl<test02()::E, std::allocator<void> >; __gnu_cxx::_Lock_policy _Lp = __gnu_cxx::_S_atomic]' /export/gnu/import/git/gcc-test-release-1-ia32/bld/i686-linux/libstdc++-v3/include/bits/shared_ptr.h:359: required from 'std::shared_ptr<_Tp>::shared_ptr(std::_Sp_alloc_shared_tag<_Tp>, _Args&& ...) [with _Alloc = std::allocator<void>; _Args = {test02()::E, const std::allocator<void>&}; _Tp = std::experimental::net::v1::executor::_TgtImpl<test02()::E, std::allocator<void> >]' /export/gnu/import/git/gcc-test-release-1-ia32/bld/i686-linux/libstdc++-v3/include/bits/shared_ptr.h:701: required from 'std::shared_ptr<_Tp> std::allocate_shared(const _Alloc&, _Args&& ...) [with _Tp = std::experimental::net::v1::executor::_TgtImpl<test02()::E, std::allocator<void> >; _Alloc = std::allocator<void>; _Args = {test02()::E, const std::allocator<void>&}]' /export/gnu/import/git/gcc-test-release-1-ia32/bld/i686-linux/libstdc++-v3/include/experimental/executor:1199: required from 'std::shared_ptr<std::experimental::net::v1::executor::_Tgt> std::experimental::net::v1::executor::_M_create(_Ex&&, const _Alloc&) [with _Ex = test02()::E; _Alloc = std::allocator<void>]' /export/gnu/import/git/gcc-test-release-1-ia32/bld/i686-linux/libstdc++-v3/include/experimental/executor:1002: required from 'std::experimental::net::v1::executor::executor(_Executor) [with _Executor = test02()::E]' /export/gnu/import/git/gcc-test-release-1-ia32/src-9/libstdc++-v3/testsuite/experimental/net/executor/1.cc:62: required from here /export/gnu/import/git/gcc-test-release-1-ia32/bld/i686-linux/libstdc++-v3/include/bits/allocator.h:91: error: invalid new-expression of abstract class type 'std::experimental::net::v1::executor::_TgtImpl<test02()::E, std::allocator<void> >' In file included from /export/gnu/import/git/gcc-test-release-1-ia32/src-9/libstdc++-v3/testsuite/experimental/net/executor/1.cc:20: /export/gnu/import/git/gcc-test-release-1-ia32/bld/i686-linux/libstdc++-v3/include/experimental/executor:1145: note: because the following virtual functions are pure within 'std::experimental::net::v1::executor::_TgtImpl<test02()::E, std::allocator<void> >': /export/gnu/import/git/gcc-test-release-1-ia32/bld/i686-linux/libstdc++-v3/include/experimental/executor:1139: note: 'virtual bool std::experimental::net::v1::executor::_Tgt::_M_equals(std::experimental::net::v1::executor::_Tgt*) const' In file included from /export/gnu/import/git/gcc-test-release-1-ia32/bld/i686-linux/libstdc++-v3/include/ext/alloc_traits.h:36, from /export/gnu/import/git/gcc-test-release-1-ia32/bld/i686-linux/libstdc++-v3/include/bits/basic_string.h:40, from /export/gnu/import/git/gcc-test-release-1-ia32/bld/i686-linux/libstdc++-v3/include/string:55, from /export/gnu/import/git/gcc-test-release-1-ia32/bld/i686-linux/libstdc++-v3/include/bits/locale_classes.h:40, from /export/gnu/import/git/gcc-test-release-1-ia32/bld/i686-linux/libstdc++-v3/include/bits/ios_base.h:41, from /export/gnu/import/git/gcc-test-release-1-ia32/bld/i686-linux/libstdc++-v3/include/ios:42, from /export/gnu/import/git/gcc-test-release-1-ia32/bld/i686-linux/libstdc++-v3/include/istream:38, from /export/gnu/import/git/gcc-test-release-1-ia32/bld/i686-linux/libstdc++-v3/include/sstream:38, from /export/gnu/import/git/gcc-test-release-1-ia32/bld/i686-linux/libstdc++-v3/include/complex:45, from /export/gnu/import/git/gcc-test-release-1-ia32/bld/i686-linux/libstdc++-v3/include/ccomplex:39, from /export/gnu/import/git/gcc-test-release-1-ia32/bld/i686-linux/libstdc++-v3/include/i686-linux/bits/stdc++.h:54, from <command-line>: /export/gnu/import/git/gcc-test-release-1-ia32/bld/i686-linux/libstdc++-v3/include/bits/alloc_traits.h:482: error: 'static void std::allocator_traits<std::allocator<_CharT> >::construct(std::allocator_traits<std::allocator<_CharT> >::allocator_type&, _Up*, _Args&& ...) [with _Up = std::experimental::net::v1::executor::_TgtImpl<test02()::E, std::allocator<void> >; _Args = {test02()::E, const std::allocator<void>&}; _Tp = void; std::allocator_traits<std::allocator<_CharT> >::allocator_type = std::allocator<void>]', declared using local type 'test02()::E', is used but never defined [-fpermissive] /export/gnu/import/git/gcc-test-release-1-ia32/bld/i686-linux/libstdc++-v3/include/bits/alloc_traits.h:482: warning: 'static void std::allocator_traits<std::allocator<_CharT> >::construct(std::allocator_traits<std::allocator<_CharT> >::allocator_type&, _Up*, _Args&& ...) noexcept (false) [with _Up = std::experimental::net::v1::executor::_TgtImpl<test02()::E, std::allocator<void> >; _Args = {test02()::E, const std::allocator<void>&}; _Tp = void]' used but never defined compiler exited with status 1 FAIL: experimental/net/executor/1.cc (test for excess errors) r9-8527 is OK.
I think I need to backport g:98f29f5638f73d8e55590eba8098a537ba746287
This is PR 94203, which is still open until I backport it. The added test on the branch reveals the latent bug. *** This bug has been marked as a duplicate of bug 94203 ***
Fixed now.