ChuanqiXu requested changes to this revision. ChuanqiXu added a comment. This revision now requires changes to proceed.
Thanks for finding this! We didn't notice this before. ================ Comment at: clang/lib/CodeGen/CGCoroutine.cpp:724-730 + Stmt *BodyStmt = S.getBody(); + CompoundStmt *Body = dyn_cast<CompoundStmt>(BodyStmt); + if (Body == nullptr) { + Body = + CompoundStmt::Create(getContext(), {BodyStmt}, FPOptionsOverride(), + SourceLocation(), SourceLocation()); + } ---------------- Can we try to move the logic to `CoroutineStmtBuilder`? That makes me feel better. And it will be helpful to add a comment to tell that we're handling the case the function body is function-try-block. ================ Comment at: clang/lib/CodeGen/CGCoroutine.cpp:726 + CompoundStmt *Body = dyn_cast<CompoundStmt>(BodyStmt); + if (Body == nullptr) { + Body = ---------------- It reads better to specify the potential type for Body. ================ Comment at: clang/test/CodeGenCoroutines/coro-function-try-block.cpp:21-23 +// CHECK-LABEL: define{{.*}} void @_Z1fv( +// CHECK: call void @_ZNSt13suspend_never13await_suspendESt16coroutine_handleIvE( +// CHECK: call void @_ZN4task12promise_type11return_voidEv( ---------------- I expect to see the nested try statements in the case. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D146758/new/ https://reviews.llvm.org/D146758 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits