https://gcc.gnu.org/bugzilla/show_bug.cgi?id=128396
Bug ID: 128396
Summary: std::source_location captured by defaulted parameter
of await_transform differs between templated coroutine
function and normal one
Product: gcc
Version: 17.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: dr.xiaosa at gmail dot com
Target Milestone: ---
https://godbolt.org/z/jc13aMb7W
In non-templated coroutine function, a co_await expression calling
await_transform captures std::source_location point to the beginning of its
operand, while the one in a templated coroutine function captures the beginning
of co_await keyword. Clang always captures the beginning of co_await.