https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102858
Bug ID: 102858 Summary: ICE when compiling <thread> to "thread.gcm" Product: gcc Version: 11.2.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: niancw29 at 163 dot com Target Milestone: --- Created attachment 51637 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=51637&action=edit preprocessed file Target: x86_64-pc-linux-gnu Configured with: ../gcc-11.2.0/configure --disable-multilib Thread model: posix Supported LTO compression algorithms: zlib gcc version 11.2.0 (GCC) command: g++ -std=c++20 -fmodules-ts -c -x c++-system-header thread the compiler output: In file included from /usr/local/include/c++/11.2.0/bits/atomic_base.h:38, from /usr/local/include/c++/11.2.0/atomic:41, of module /usr/local/include/c++/11.2.0/atomic, imported at /usr/local/include/c++/11.2.0/stop_token:34, included from /usr/local/include/c++/11.2.0/thread:40: /usr/local/include/c++/11.2.0/bits/move.h: In instantiation of ‘constexpr std::_Require<std::__not_<std::__is_tuple_like<_Tp> >, std::is_move_constructible<_Tp>, std::is_move_assignable<_Tp> > std::swap(_Tp&, _Tp&) [with _Tp = std::thread::id; std::_Require<std::__not_<std::__is_tuple_like<_Tp> >, std::is_move_constructible<_Tp>, std::is_move_assignable<_Tp> > = void]’: /usr/local/include/c++/11.2.0/bits/std_thread.h:172:16: required from here /usr/local/include/c++/11.2.0/bits/move.h:204:19: internal compiler error: in tsubst_copy, at cp/pt.c:16621 204 | _Tp __tmp = _GLIBCXX_MOVE(__a); | ^~~~~~~~~~~~~ 0x62699c tsubst_copy ../../gcc-11.2.0/gcc/cp/pt.c:16621 0x7c15ce tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool) ../../gcc-11.2.0/gcc/cp/pt.c:20782 0x7c1dbb tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool) ../../gcc-11.2.0/gcc/cp/pt.c:19548 0x7c1dbb tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool) ../../gcc-11.2.0/gcc/cp/pt.c:19680 0x7c19bd tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool) ../../gcc-11.2.0/gcc/cp/pt.c:19548 0x7c19bd tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool) ../../gcc-11.2.0/gcc/cp/pt.c:20206 0x7d3124 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool) ../../gcc-11.2.0/gcc/cp/pt.c:19548 0x7d3124 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) ../../gcc-11.2.0/gcc/cp/pt.c:19159 0x7d923c tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) ../../gcc-11.2.0/gcc/cp/pt.c:16527 0x7d923c tsubst_init ../../gcc-11.2.0/gcc/cp/pt.c:16531 0x7d6121 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) ../../gcc-11.2.0/gcc/cp/pt.c:18368 0x7d4d6a tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) ../../gcc-11.2.0/gcc/cp/pt.c:18184 0x7d4d6a tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) ../../gcc-11.2.0/gcc/cp/pt.c:18199 0x7d3c5f tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) ../../gcc-11.2.0/gcc/cp/pt.c:18184 0x7d3c5f tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) ../../gcc-11.2.0/gcc/cp/pt.c:18550 0x7c7749 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) ../../gcc-11.2.0/gcc/cp/pt.c:25876 0x7c7749 instantiate_body ../../gcc-11.2.0/gcc/cp/pt.c:25876 0x7c809f instantiate_decl(tree_node*, bool, bool) ../../gcc-11.2.0/gcc/cp/pt.c:26170 0x7e3cfb instantiate_pending_templates(int) ../../gcc-11.2.0/gcc/cp/pt.c:26249 0x6f5fa8 c_parse_final_cleanups() ../../gcc-11.2.0/gcc/cp/decl2.c:4962