The llvm.coro.end.async intrinsic allows to specify a function that is
to be called as the last action before returning. This function will be
inlined after coroutine splitting.
This function can contain a 'musttail' call to allow for guaranteed tail
calling as the last action.
clang-tidy: warning: 'auto NewCE' can be declared as 'auto *NewCE' [llvm-qualified-auto]
not useful