[clang] [llvm] [clang][CodeGen] Extends lifetime of coroutine promise(CWG2563) (PR #151067)

Weibo He via llvm-commits llvm-commits at lists.llvm.org
Mon Aug 4 05:11:37 PDT 2025


================
@@ -259,18 +259,6 @@ void coro::Shape::analyze(Function &F,
 
         if (CoroEnds.back()->isUnwind())
           HasUnwindCoroEnd = true;
-
-        if (CoroEnds.back()->isFallthrough() && isa<CoroEndInst>(II)) {
-          // Make sure that the fallthrough coro.end is the first element in the
-          // CoroEnds vector.
-          // Note: I don't think this is neccessary anymore.
-          if (CoroEnds.size() > 1) {
-            if (CoroEnds.front()->isFallthrough())
-              report_fatal_error(
-                  "Only one coro.end can be marked as fallthrough");
----------------
NewSigma wrote:

Noting that `simplifycfg` might duplicate `coro.end` in some cases, I suggest relaxing this restriction.

https://github.com/llvm/llvm-project/pull/151067


More information about the llvm-commits mailing list