junparser added a comment. In D82314#2109437 <https://reviews.llvm.org/D82314#2109437>, @lxfind wrote:
> In D82314#2107910 <https://reviews.llvm.org/D82314#2107910>, @junparser wrote: > > > Rather than doing it here, can we build await_resume call expression with > > MaterializedTemporaryExpr when expand the coawait expression. That's how > > gcc does. > > > There doesn't appear to be a way to do that in Clang. It goes from the AST to > IR directly, and there needs to be a MaterializedTemporaryExpr to wrap the > result of co_await. Could you elaborate on how this might be done in Clang? For now, we only wrap coawait expression with MaterializedTemporaryExpr when the kind of result is VK_RValue, We can wrap await_resume call instead in such case when build coawait expression. so in emitSuspendExpression, we can directly emit await_call expression with MaterializedTemporaryExpr. I think this should work, although i'm not so sure. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D82314/new/ https://reviews.llvm.org/D82314 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits