[PATCH] D116204: [C++20] [Coroutines] Allow promise_type to not define return_void or return_value
Chuanqi Xu via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Thu Dec 23 04:09:54 PST 2021
ChuanqiXu marked 2 inline comments as done.
ChuanqiXu added inline comments.
Comment at: clang/lib/Sema/SemaCoroutine.cpp:1431-1432
+ // Then AnalysisBasedWarning would emit a warning about `foo()` lacks a
+ // co_return statements.
+ Fallthrough = S.ActOnNullStmt(PromiseRecordDecl->getLocation());
> Your testcase doesnt show such a warning. This seems unhelpful.
Oh, I need emphasize in the comment that the warning is not correct. I want to say that if we don't set `FallThrough`, the compiler would emit incorrect warning. And in this revision, we set `FallThrough` so that we could avoid the warning. The edited test case could address this.
Comment at: clang/lib/Sema/SemaCoroutine.cpp:1437-1440
// If the unqualified-id return_void is found, flowing off the end of a
// coroutine is equivalent to a co_return with no operand. Otherwise,
// flowing off the end of a coroutine results in undefined behavior.
Fallthrough = S.BuildCoreturnStmt(FD.getLocation(), nullptr,
> there's some repetition in the comments. Perhaps a bloc comment before the if-else sequence?
Yeah, would do.
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
More information about the cfe-commits