https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102217

--- Comment #10 from Arsen Arsenović <arsen at gcc dot gnu.org> ---
(In reply to John Eivind Helset from comment #9)
> Hit this as well on master (9d5c500c4fa) in something like `co_return
> co_await f(a, b ? c : d);`, if I lift the conditional out of await it seems
> ok.
> 
> 0x2af0211 internal_error(char const*, ...)
>       ../../gcc/diagnostic-global-context.cc:491
> 0xb4e45d fancy_abort(char const*, int, char const*)
>       ../../gcc/diagnostic.cc:1772
> 0x79bd3b flatten_await_stmt
>       ../../gcc/cp/coroutines.cc:3097
> 0xbdcc14 flatten_await_stmt
>       ../../gcc/cp/coroutines.cc:3126
> 0xbdcc14 flatten_await_stmt
>       ../../gcc/cp/coroutines.cc:3126
> 0xbdcc14 flatten_await_stmt
>       ../../gcc/cp/coroutines.cc:3126
> 0xbde478 maybe_promote_temps
>       ../../gcc/cp/coroutines.cc:3309
> 0xbde478 await_statement_walker
>       ../../gcc/cp/coroutines.cc:3948
> 0x19c6754 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*> >*))
>       ../../gcc/tree.cc:11479
> 0xbde138 await_statement_walker
>       ../../gcc/cp/coroutines.cc:3619
> 0x19c6754 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*> >*))
>       ../../gcc/tree.cc:11479
> 0xbde984 await_statement_walker
>       ../../gcc/cp/coroutines.cc:3896
> 0x19c6754 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*> >*))
>       ../../gcc/tree.cc:11479
> 0xbde138 await_statement_walker
>       ../../gcc/cp/coroutines.cc:3619
> 0x19c6754 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*> >*))
>       ../../gcc/tree.cc:11479
> 0xbde642 await_statement_walker
>       ../../gcc/cp/coroutines.cc:3608
> 0x19c6754 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*> >*))
>       ../../gcc/tree.cc:11479
> 0x19c68ac 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*> >*))
>       ../../gcc/tree.cc:11713
> 0xbde642 await_statement_walker
>       ../../gcc/cp/coroutines.cc:3608
> 0x19c6754 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*> >*))
>       ../../gcc/tree.cc:11479

hm, that's possibly unrelated, best open a new PR with the usual bug
reproduction steps (especially with preprocessed sources)

Reply via email to