================
@@ -0,0 +1,84 @@
+// This file tests the coro_structured_concurrency attribute semantics. 
+// RUN: %clang_cc1 -std=c++20 -disable-llvm-passes -emit-llvm %s -o - | 
FileCheck %s
+
+#include "Inputs/coroutine.h"
+#include "Inputs/utility.h"
+
+template <typename T>
+struct [[clang::coro_structured_concurrency]] Task {
----------------
yuxuanchen1997 wrote:

Actually no. It's perfect valid to destroy this task before completion. See 
this as an example:
```
Task bar();
Task foo() {
   co_await bar();
}
```
You can totally call foo and destroy it, as long as `bar` is not running in 
parallel and you don't try to resume `bar` (through a handle you smuggled with 
the task, which this type does not allow to do)

https://github.com/llvm/llvm-project/pull/94693
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to