https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109283
--- Comment #6 from accelerator0099 at gmail dot com --- Still ICEs in truck commit 28b508233a12c13295f960a2cb8a4864879acfb4 May 25 2024 version 15.0.0 Output: co_yield_bug.cc:197:31: error: redefinition of default argument for ‘class _Alloc’ 197 | template <range _Rng, class _Alloc = allocator<byte>> | ^~~~~ In file included from /build/gcc/include/c++/15.0.0/ranges:72, from co_yield_bug.cc:17: /build/gcc/include/c++/15.0.0/bits/elements_of.h:55:26: note: original definition appeared here 55 | template<range _Range, typename _Alloc = allocator<byte>> | ^~~~~~~~ co_yield_bug.cc:204:9: error: redefinition of ‘template<class _Rng, class _Alloc> std::ranges::elements_of(_Rng&&, _Alloc)-> elements_of<_Range&&, _Alloc>’ 204 | elements_of(_Rng&&, _Alloc = {}) -> elements_of<_Rng&&, _Alloc>; | ^~~~~~~~~~~ /build/gcc/include/c++/15.0.0/bits/elements_of.h:63:5: note: ‘template<class _Range, class _Alloc> std::ranges::elements_of(_Range&&, _Alloc)-> elements_of<_Range&&, _Alloc>’ previously declared here 63 | elements_of(_Range&&, _Alloc = _Alloc()) | ^~~~~~~~~~~ co_yield_bug.cc: In function ‘std::generator<std::__cxx11::basic_string<char> > source(int&, std::string)’: co_yield_bug.cc:513:1: internal compiler error: in flatten_await_stmt, at cp/coroutines.cc:2875 513 | } | ^ 0x76fd99 flatten_await_stmt /build/git/gcc/gcc/cp/coroutines.cc:2875 0xac4833 flatten_await_stmt /build/git/gcc/gcc/cp/coroutines.cc:2904 0xac67d0 maybe_promote_temps /build/git/gcc/gcc/cp/coroutines.cc:3087 0xac67d0 await_statement_walker /build/git/gcc/gcc/cp/coroutines.cc:3726 0x169330c walk_tree_1(tree_node**, tree_node* (*)(tree_node**, int*, void*), void*, hash_set<tree_node*, false, default_hash_traits<tree_node*> >*, tree_node* (*)(tree_node**, int*, tree_node* (*)(tree_node**, int*, void*), void*, hash_set<tree_node*, false, default_hash_traits<tree_node*> >*)) /build/git/gcc/gcc/tree.cc:11468 0xac74e1 await_statement_walker /build/git/gcc/gcc/cp/coroutines.cc:3546 0x169330c walk_tree_1(tree_node**, tree_node* (*)(tree_node**, int*, void*), void*, hash_set<tree_node*, false, default_hash_traits<tree_node*> >*, tree_node* (*)(tree_node**, int*, tree_node* (*)(tree_node**, int*, void*), void*, hash_set<tree_node*, false, default_hash_traits<tree_node*> >*)) /build/git/gcc/gcc/tree.cc:11468 0xac6528 await_statement_walker /build/git/gcc/gcc/cp/coroutines.cc:3397 0x169330c walk_tree_1(tree_node**, tree_node* (*)(tree_node**, int*, void*), void*, hash_set<tree_node*, false, default_hash_traits<tree_node*> >*, tree_node* (*)(tree_node**, int*, tree_node* (*)(tree_node**, int*, void*), void*, hash_set<tree_node*, false, default_hash_traits<tree_node*> >*)) /build/git/gcc/gcc/tree.cc:11468 0xac69d0 await_statement_walker /build/git/gcc/gcc/cp/coroutines.cc:3386 0x169330c walk_tree_1(tree_node**, tree_node* (*)(tree_node**, int*, void*), void*, hash_set<tree_node*, false, default_hash_traits<tree_node*> >*, tree_node* (*)(tree_node**, int*, tree_node* (*)(tree_node**, int*, void*), void*, hash_set<tree_node*, false, default_hash_traits<tree_node*> >*)) /build/git/gcc/gcc/tree.cc:11468 0xac69d0 await_statement_walker /build/git/gcc/gcc/cp/coroutines.cc:3386 0x169330c walk_tree_1(tree_node**, tree_node* (*)(tree_node**, int*, void*), void*, hash_set<tree_node*, false, default_hash_traits<tree_node*> >*, tree_node* (*)(tree_node**, int*, tree_node* (*)(tree_node**, int*, void*), void*, hash_set<tree_node*, false, default_hash_traits<tree_node*> >*)) /build/git/gcc/gcc/tree.cc:11468 0xac6528 await_statement_walker /build/git/gcc/gcc/cp/coroutines.cc:3397 0x169330c walk_tree_1(tree_node**, tree_node* (*)(tree_node**, int*, void*), void*, hash_set<tree_node*, false, default_hash_traits<tree_node*> >*, tree_node* (*)(tree_node**, int*, tree_node* (*)(tree_node**, int*, void*), void*, hash_set<tree_node*, false, default_hash_traits<tree_node*> >*)) /build/git/gcc/gcc/tree.cc:11468 0x1693464 walk_tree_1(tree_node**, tree_node* (*)(tree_node**, int*, void*), void*, hash_set<tree_node*, false, default_hash_traits<tree_node*> >*, tree_node* (*)(tree_node**, int*, tree_node* (*)(tree_node**, int*, void*), void*, hash_set<tree_node*, false, default_hash_traits<tree_node*> >*)) /build/git/gcc/gcc/tree.cc:11702 0xac6528 await_statement_walker /build/git/gcc/gcc/cp/coroutines.cc:3397 0x169330c walk_tree_1(tree_node**, tree_node* (*)(tree_node**, int*, void*), void*, hash_set<tree_node*, false, default_hash_traits<tree_node*> >*, tree_node* (*)(tree_node**, int*, tree_node* (*)(tree_node**, int*, void*), void*, hash_set<tree_node*, false, default_hash_traits<tree_node*> >*)) /build/git/gcc/gcc/tree.cc:11468 0xac69d0 await_statement_walker /build/git/gcc/gcc/cp/coroutines.cc:3386 0x169330c walk_tree_1(tree_node**, tree_node* (*)(tree_node**, int*, void*), void*, hash_set<tree_node*, false, default_hash_traits<tree_node*> >*, tree_node* (*)(tree_node**, int*, tree_node* (*)(tree_node**, int*, void*), void*, hash_set<tree_node*, false, default_hash_traits<tree_node*> >*)) /build/git/gcc/gcc/tree.cc:11468