[libcxx-commits] [libcxx] [libcxx] Test `await_suspend` control flow & `coro_await_suspend_destroy` attr (PR #152820)
via libcxx-commits
libcxx-commits at lists.llvm.org
Fri Aug 8 19:29:53 PDT 2025
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-libcxx
Author: None (snarkmaster)
<details>
<summary>Changes</summary>
When reviewing https://github.com/llvm/llvm-project/pull/152623, @@<!-- -->ChuanqiXu9 suggested that it's better to separate `clang` and `libcxx` changes, so I did that here.
This event-replay test is compatible with compilers lacking the new attribute `[[clang::coro_await_suspend_destroy]]`. The two PRs can be landed in any order.
The test does not just verify the attribute's correct behavior. By comparing "gold" event traces, it also provides some "change detector" protection against future breakage in the complex control flow of the main C++ coroutine implementation. Since suspension remains an area of active optimization work, such bugs are not ruled out. For example, as a new contributor to LLVM, I made (and fixed) 2 control-flow bugs while working on #<!-- -->152623. This test would've caught both.
---
Patch is 128.81 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/152820.diff
3 Files Affected:
- (added) libcxx/test/std/language.support/support.coroutines/end.to.end/coro_await_suspend_destroy.golden-exceptions.h (+1163)
- (added) libcxx/test/std/language.support/support.coroutines/end.to.end/coro_await_suspend_destroy.golden-no-exceptions.h (+1156)
- (added) libcxx/test/std/language.support/support.coroutines/end.to.end/coro_await_suspend_destroy.pass.cpp (+560)
``````````diff
diff --git a/libcxx/test/std/language.support/support.coroutines/end.to.end/coro_await_suspend_destroy.golden-exceptions.h b/libcxx/test/std/language.support/support.coroutines/end.to.end/coro_await_suspend_destroy.golden-exceptions.h
new file mode 100644
index 0000000000000..2911e97ad9f59
--- /dev/null
+++ b/libcxx/test/std/language.support/support.coroutines/end.to.end/coro_await_suspend_destroy.golden-exceptions.h
@@ -0,0 +1,1163 @@
+// coro_await_suspend_destroy.golden-exceptions.h
++ test_coro_shortcircuits_to_empty(std::vector<test_driver>{
+ {.toggles_ = 0,
+ .threw_ = 0,
+ .result_ = {},
+ .next_event_ = 18,
+ .events_ = {67, 68, 73, 1, 74, 1, 75, 1, 73, 2, 79, 77, 2, 75, 2, 66, 64, 65}},
+ {.toggles_ = 1,
+ .threw_ = 1,
+ .result_ = -1,
+ .next_event_ = 19,
+ .events_ = {67, 68, 73, 1, 74, 1, 75, 1, 73, 2, 79, 77, 2, 75, 2, 66, 64, 81, 65}},
+ {.toggles_ = 2,
+ .threw_ = 0,
+ .result_ = {},
+ .next_event_ = 18,
+ .events_ = {67, 68, 73, 1, 74, 1, 75, 1, 73, 2, 79, 77, 2, 75, 2, 66, 64, 65}},
+ {.toggles_ = 3,
+ .threw_ = 1,
+ .result_ = -1,
+ .next_event_ = 19,
+ .events_ = {67, 68, 73, 1, 74, 1, 75, 1, 73, 2, 79, 77, 2, 75, 2, 66, 64, 81, 65}},
+ {.toggles_ = 4,
+ .threw_ = 0,
+ .result_ = {},
+ .next_event_ = 15,
+ .events_ = {67, 68, 73, 1, 74, 1, 76, 1, 75, 1, 72, 69, 66, 64, 65}},
+ {.toggles_ = 5,
+ .threw_ = 1,
+ .result_ = -1,
+ .next_event_ = 16,
+ .events_ = {67, 68, 73, 1, 74, 1, 76, 1, 75, 1, 72, 69, 66, 64, 81, 65}},
+ {.toggles_ = 6,
+ .threw_ = 0,
+ .result_ = {},
+ .next_event_ = 15,
+ .events_ = {67, 68, 73, 1, 74, 1, 76, 1, 75, 1, 72, 69, 66, 64, 65}},
+ {.toggles_ = 7,
+ .threw_ = 1,
+ .result_ = -1,
+ .next_event_ = 16,
+ .events_ = {67, 68, 73, 1, 74, 1, 76, 1, 75, 1, 72, 69, 66, 64, 81, 65}},
+ {.toggles_ = 8,
+ .threw_ = 0,
+ .result_ = {},
+ .next_event_ = 22,
+ .events_ = {67, 68, 73, 1, 74, 1, 75, 1, 73, 2, 79, 77, 2, 78, 2, 75, 2, 72, 69, 66, 64, 65}},
+ {.toggles_ = 9,
+ .threw_ = 1,
+ .result_ = -1,
+ .next_event_ = 23,
+ .events_ = {67, 68, 73, 1, 74, 1, 75, 1, 73, 2, 79, 77, 2, 78, 2, 75, 2, 72, 69, 66, 64, 81, 65}},
+ {.toggles_ = 10,
+ .threw_ = 0,
+ .result_ = {},
+ .next_event_ = 22,
+ .events_ = {67, 68, 73, 1, 74, 1, 75, 1, 73, 2, 79, 77, 2, 78, 2, 75, 2, 72, 69, 66, 64, 65}},
+ {.toggles_ = 11,
+ .threw_ = 1,
+ .result_ = -1,
+ .next_event_ = 23,
+ .events_ = {67, 68, 73, 1, 74, 1, 75, 1, 73, 2, 79, 77, 2, 78, 2, 75, 2, 72, 69, 66, 64, 81, 65}},
+ {.toggles_ = 12,
+ .threw_ = 0,
+ .result_ = {},
+ .next_event_ = 15,
+ .events_ = {67, 68, 73, 1, 74, 1, 76, 1, 75, 1, 72, 69, 66, 64, 65}},
+ {.toggles_ = 13,
+ .threw_ = 1,
+ .result_ = -1,
+ .next_event_ = 16,
+ .events_ = {67, 68, 73, 1, 74, 1, 76, 1, 75, 1, 72, 69, 66, 64, 81, 65}},
+ {.toggles_ = 14,
+ .threw_ = 0,
+ .result_ = {},
+ .next_event_ = 15,
+ .events_ = {67, 68, 73, 1, 74, 1, 76, 1, 75, 1, 72, 69, 66, 64, 65}},
+ {.toggles_ = 15,
+ .threw_ = 1,
+ .result_ = -1,
+ .next_event_ = 16,
+ .events_ = {67, 68, 73, 1, 74, 1, 76, 1, 75, 1, 72, 69, 66, 64, 81, 65}},
+ {.toggles_ = 16,
+ .threw_ = 0,
+ .result_ = {},
+ .next_event_ = 18,
+ .events_ = {67, 68, 73, 1, 74, 1, 75, 1, 73, 2, 79, 77, 2, 75, 2, 66, 64, 65}},
+ {.toggles_ = 17,
+ .threw_ = 1,
+ .result_ = -1,
+ .next_event_ = 19,
+ .events_ = {67, 68, 73, 1, 74, 1, 75, 1, 73, 2, 79, 77, 2, 75, 2, 66, 64, 81, 65}},
+ {.toggles_ = 18,
+ .threw_ = 0,
+ .result_ = {},
+ .next_event_ = 18,
+ .events_ = {67, 68, 73, 1, 74, 1, 75, 1, 73, 2, 79, 77, 2, 75, 2, 66, 64, 65}},
+ {.toggles_ = 19,
+ .threw_ = 1,
+ .result_ = -1,
+ .next_event_ = 19,
+ .events_ = {67, 68, 73, 1, 74, 1, 75, 1, 73, 2, 79, 77, 2, 75, 2, 66, 64, 81, 65}},
+ {.toggles_ = 20,
+ .threw_ = 0,
+ .result_ = {},
+ .next_event_ = 15,
+ .events_ = {67, 68, 73, 1, 74, 1, 76, 1, 75, 1, 72, 69, 66, 64, 65}},
+ {.toggles_ = 21,
+ .threw_ = 1,
+ .result_ = -1,
+ .next_event_ = 16,
+ .events_ = {67, 68, 73, 1, 74, 1, 76, 1, 75, 1, 72, 69, 66, 64, 81, 65}},
+ {.toggles_ = 22,
+ .threw_ = 0,
+ .result_ = {},
+ .next_event_ = 15,
+ .events_ = {67, 68, 73, 1, 74, 1, 76, 1, 75, 1, 72, 69, 66, 64, 65}},
+ {.toggles_ = 23,
+ .threw_ = 1,
+ .result_ = -1,
+ .next_event_ = 16,
+ .events_ = {67, 68, 73, 1, 74, 1, 76, 1, 75, 1, 72, 69, 66, 64, 81, 65}},
+ {.toggles_ = 24,
+ .threw_ = 0,
+ .result_ = {},
+ .next_event_ = 22,
+ .events_ = {67, 68, 73, 1, 74, 1, 75, 1, 73, 2, 79, 77, 2, 78, 2, 75, 2, 72, 69, 66, 64, 65}},
+ {.toggles_ = 25,
+ .threw_ = 1,
+ .result_ = -1,
+ .next_event_ = 23,
+ .events_ = {67, 68, 73, 1, 74, 1, 75, 1, 73, 2, 79, 77, 2, 78, 2, 75, 2, 72, 69, 66, 64, 81, 65}},
+ {.toggles_ = 26,
+ .threw_ = 0,
+ .result_ = {},
+ .next_event_ = 22,
+ .events_ = {67, 68, 73, 1, 74, 1, 75, 1, 73, 2, 79, 77, 2, 78, 2, 75, 2, 72, 69, 66, 64, 65}},
+ {.toggles_ = 27,
+ .threw_ = 1,
+ .result_ = -1,
+ .next_event_ = 23,
+ .events_ = {67, 68, 73, 1, 74, 1, 75, 1, 73, 2, 79, 77, 2, 78, 2, 75, 2, 72, 69, 66, 64, 81, 65}},
+ {.toggles_ = 28,
+ .threw_ = 0,
+ .result_ = {},
+ .next_event_ = 15,
+ .events_ = {67, 68, 73, 1, 74, 1, 76, 1, 75, 1, 72, 69, 66, 64, 65}},
+ {.toggles_ = 29,
+ .threw_ = 1,
+ .result_ = -1,
+ .next_event_ = 16,
+ .events_ = {67, 68, 73, 1, 74, 1, 76, 1, 75, 1, 72, 69, 66, 64, 81, 65}},
+ {.toggles_ = 30,
+ .threw_ = 0,
+ .result_ = {},
+ .next_event_ = 15,
+ .events_ = {67, 68, 73, 1, 74, 1, 76, 1, 75, 1, 72, 69, 66, 64, 65}},
+ {.toggles_ = 31,
+ .threw_ = 1,
+ .result_ = -1,
+ .next_event_ = 16,
+ .events_ = {67, 68, 73, 1, 74, 1, 76, 1, 75, 1, 72, 69, 66, 64, 81, 65}},
+}) +
+ test_coro_simple_await(std::vector<test_driver>{
+ {.toggles_ = 0,
+ .threw_ = 0,
+ .result_ = 12,
+ .next_event_ = 20,
+ .events_ = {67, 68, 73, 1, 74, 1, 73, 2, 74, 2, 70, 12, 75, 2, 75, 1, 69, 66, 64, 65}},
+ {.toggles_ = 1,
+ .threw_ = 1,
+ .result_ = -1,
+ .next_event_ = 21,
+ .events_ = {67, 68, 73, 1, 74, 1, 73, 2, 74, 2, 70, 12, 75, 2, 75, 1, 69, 66, 64, 81, 65}},
+ {.toggles_ = 2,
+ .threw_ = 0,
+ .result_ = {},
+ .next_event_ = 22,
+ .events_ = {67, 68, 73, 1, 74, 1, 73, 2, 74, 2, 70, 12, 71, 75, 2, 75, 1, 72, 69, 66, 64, 65}},
+ {.toggles_ = 3,
+ .threw_ = 1,
+ .result_ = -1,
+ .next_event_ = 23,
+ .events_ = {67, 68, 73, 1, 74, 1, 73, 2, 74, 2, 70, 12, 71, 75, 2, 75, 1, 72, 69, 66, 64, 81, 65}},
+ {.toggles_ = 4,
+ .threw_ = 0,
+ .result_ = {},
+ .next_event_ = 15,
+ .events_ = {67, 68, 73, 1, 74, 1, 76, 1, 75, 1, 72, 69, 66, 64, 65}},
+ {.toggles_ = 5,
+ .threw_ = 1,
+ .result_ = -1,
+ .next_event_ = 16,
+ .events_ = {67, 68, 73, 1, 74, 1, 76, 1, 75, 1, 72, 69, 66, 64, 81, 65}},
+ {.toggles_ = 6,
+ .threw_ = 0,
+ .result_ = {},
+ .next_event_ = 15,
+ .events_ = {67, 68, 73, 1, 74, 1, 76, 1, 75, 1, 72, 69, 66, 64, 65}},
+ {.toggles_ = 7,
+ .threw_ = 1,
+ .result_ = -1,
+ .next_event_ = 16,
+ .events_ = {67, 68, 73, 1, 74, 1, 76, 1, 75, 1, 72, 69, 66, 64, 81, 65}},
+ {.toggles_ = 8,
+ .threw_ = 0,
+ .result_ = 12,
+ .next_event_ = 20,
+ .events_ = {67, 68, 73, 1, 74, 1, 73, 2, 74, 2, 70, 12, 75, 2, 75, 1, 69, 66, 64, 65}},
+ {.toggles_ = 9,
+ .threw_ = 1,
+ .result_ = -1,
+ .next_event_ = 21,
+ .events_ = {67, 68, 73, 1, 74, 1, 73, 2, 74, 2, 70, 12, 75, 2, 75, 1, 69, 66, 64, 81, 65}},
+ {.toggles_ = 10,
+ .threw_ = 0,
+ .result_ = {},
+ .next_event_ = 22,
+ .events_ = {67, 68, 73, 1, 74, 1, 73, 2, 74, 2, 70, 12, 71, 75, 2, 75, 1, 72, 69, 66, 64, 65}},
+ {.toggles_ = 11,
+ .threw_ = 1,
+ .result_ = -1,
+ .next_event_ = 23,
+ .events_ = {67, 68, 73, 1, 74, 1, 73, 2, 74, 2, 70, 12, 71, 75, 2, 75, 1, 72, 69, 66, 64, 81, 65}},
+ {.toggles_ = 12,
+ .threw_ = 0,
+ .result_ = {},
+ .next_event_ = 15,
+ .events_ = {67, 68, 73, 1, 74, 1, 76, 1, 75, 1, 72, 69, 66, 64, 65}},
+ {.toggles_ = 13,
+ .threw_ = 1,
+ .result_ = -1,
+ .next_event_ = 16,
+ .events_ = {67, 68, 73, 1, 74, 1, 76, 1, 75, 1, 72, 69, 66, 64, 81, 65}},
+ {.toggles_ = 14,
+ .threw_ = 0,
+ .result_ = {},
+ .next_event_ = 15,
+ .events_ = {67, 68, 73, 1, 74, 1, 76, 1, 75, 1, 72, 69, 66, 64, 65}},
+ {.toggles_ = 15,
+ .threw_ = 1,
+ .result_ = -1,
+ .next_event_ = 16,
+ .events_ = {67, 68, 73, 1, 74, 1, 76, 1, 75, 1, 72, 69, 66, 64, 81, 65}},
+ {.toggles_ = 16,
+ .threw_ = 0,
+ .result_ = {},
+ .next_event_ = 18,
+ .events_ = {67, 68, 73, 1, 74, 1, 73, 2, 79, 77, 2, 75, 2, 75, 1, 66, 64, 65}},
+ {.toggles_ = 17,
+ .threw_ = 1,
+ .result_ = -1,
+ .next_event_ = 19,
+ .events_ = {67, 68, 73, 1, 74, 1, 73, 2, 79, 77, 2, 75, 2, 75, 1, 66, 64, 81, 65}},
+ {.toggles_ = 18,
+ .threw_ = 0,
+ .result_ = {},
+ .next_event_ = 18,
+ .events_ = {67, 68, 73, 1, 74, 1, 73, 2, 79, 77, 2, 75, 2, 75, 1, 66, 64, 65}},
+ {.toggles_ = 19,
+ .threw_ = 1,
+ .result_ = -1,
+ .next_event_ = 19,
+ .events_ = {67, 68, 73, 1, 74, 1, 73, 2, 79, 77, 2, 75, 2, 75, 1, 66, 64, 81, 65}},
+ {.toggles_ = 20,
+ .threw_ = 0,
+ .result_ = {},
+ .next_event_ = 15,
+ .events_ = {67, 68, 73, 1, 74, 1, 76, 1, 75, 1, 72, 69, 66, 64, 65}},
+ {.toggles_ = 21,
+ .threw_ = 1,
+ .result_ = -1,
+ .next_event_ = 16,
+ .events_ = {67, 68, 73, 1, 74, 1, 76, 1, 75, 1, 72, 69, 66, 64, 81, 65}},
+ {.toggles_ = 22,
+ .threw_ = 0,
+ .result_ = {},
+ .next_event_ = 15,
+ .events_ = {67, 68, 73, 1, 74, 1, 76, 1, 75, 1, 72, 69, 66, 64, 65}},
+ {.toggles_ = 23,
+ .threw_ = 1,
+ .result_ = -1,
+ .next_event_ = 16,
+ .events_ = {67, 68, 73, 1, 74, 1, 76, 1, 75, 1, 72, 69, 66, 64, 81, 65}},
+ {.toggles_ = 24,
+ .threw_ = 0,
+ .result_ = {},
+ .next_event_ = 22,
+ .events_ = {67, 68, 73, 1, 74, 1, 73, 2, 79, 77, 2, 78, 2, 75, 2, 75, 1, 72, 69, 66, 64, 65}},
+ {.toggles_ = 25,
+ .threw_ = 1,
+ .result_ = -1,
+ .next_event_ = 23,
+ .events_ = {67, 68, 73, 1, 74, 1, 73, 2, 79, 77, 2, 78, 2, 75, 2, 75, 1, 72, 69, 66, 64, 81, 65}},
+ {.toggles_ = 26,
+ .threw_ = 0,
+ .result_ = {},
+ .next_event_ = 22,
+ .events_ = {67, 68, 73, 1, 74, 1, 73, 2, 79, 77, 2, 78, 2, 75, 2, 75, 1, 72, 69, 66, 64, 65}},
+ {.toggles_ = 27,
+ .threw_ = 1,
+ .result_ = -1,
+ .next_event_ = 23,
+ .events_ = {67, 68, 73, 1, 74, 1, 73, 2, 79, 77, 2, 78, 2, 75, 2, 75, 1, 72, 69, 66, 64, 81, 65}},
+ {.toggles_ = 28,
+ .threw_ = 0,
+ .result_ = {},
+ .next_event_ = 15,
+ .events_ = {67, 68, 73, 1, 74, 1, 76, 1, 75, 1, 72, 69, 66, 64, 65}},
+ {.toggles_ = 29,
+ .threw_ = 1,
+ .result_ = -1,
+ .next_event_ = 16,
+ .events_ = {67, 68, 73, 1, 74, 1, 76, 1, 75, 1, 72, 69, 66, 64, 81, 65}},
+ {.toggles_ = 30,
+ .threw_ = 0,
+ .result_ = {},
+ .next_event_ = 15,
+ .events_ = {67, 68, 73, 1, 74, 1, 76, 1, 75, 1, 72, 69, 66, 64, 65}},
+ {.toggles_ = 31,
+ .threw_ = 1,
+ .result_ = -1,
+ .next_event_ = 16,
+ .events_ = {67, 68, 73, 1, 74, 1, 76, 1, 75, 1, 72, 69, 66, 64, 81, 65}},
+ }) +
+ test_coro_catching_shortcircuits_to_empty(std::vector<test_driver>{
+ {.toggles_ = 0,
+ .threw_ = 0,
+ .result_ = {},
+ .next_event_ = 18,
+ .events_ = {67, 68, 73, 1, 74, 1, 75, 1, 73, 2, 79, 77, 2, 75, 2, 66, 64, 65}},
+ {.toggles_ = 1,
+ .threw_ = 1,
+ .result_ = -1,
+ .next_event_ = 19,
+ .events_ = {67, 68, 73, 1, 74, 1, 75, 1, 73, 2, 79, 77, 2, 75, 2, 66, 64, 81, 65}},
+ {.toggles_ = 2,
+ .threw_ = 0,
+ .result_ = {},
+ .next_event_ = 18,
+ .events_ = {67, 68, 73, 1, 74, 1, 75, 1, 73, 2, 79, 77, 2, 75, 2, 66, 64, 65}},
+ {.toggles_ = 3,
+ .threw_ = 1,
+ .result_ = -1,
+ .next_event_ = 19,
+ .events_ = {67, 68, 73, 1, 74, 1, 75, 1, 73, 2, 79, 77, 2, 75, 2, 66, 64, 81, 65}},
+ {.toggles_ = 4,
+ .threw_ = 0,
+ .result_ = {},
+ .next_event_ = 16,
+ .events_ = {67, 68, 73, 1, 74, 1, 76, 1, 75, 1, 80, 72, 69, 66, 64, 65}},
+ {.toggles_ = 5,
+ .threw_ = 1,
+ .result_ = -1,
+ .next_event_ = 17,
+ .events_ = {67, 68, 73, 1, 74, 1, 76, 1, 75, 1, 80, 72, 69, 66, 64, 81, 65}},
+ {.toggles_ = 6,
+ .threw_ = 0,
+ .result_ = {},
+ .next_event_ = 16,
+ .events_ = {67, 68, 73, 1, 74, 1, 76, 1, 75, 1, 80, 72, 69, 66, 64, 65}},
+ {.toggles_ = 7,
+ .threw_ = 1,
+ .result_ = -1,
+ .next_event_ = 17,
+ .events_ = {67, 68, 73, 1, 74, 1, 76, 1, 75, 1, 80, 72, 69, 66, 64, 81, 65}},
+ {.toggles_ = 8,
+ .threw_ = 0,
+ .result_ = {},
+ .next_event_ = 23,
+ .events_ = {67, 68, 73, 1, 74, 1, 75, 1, 73, 2, 79, 77, 2, 78, 2, 75, 2, 80, 72, 69, 66, 64, 65}},
+ {.toggles_ = 9,
+ .threw_ = 1,
+ .result_ = -1,
+ .next_event_ = 24,
+ .events_ = {67, 68, 73, 1, 74, 1, 75, 1, 73, 2, 79, 77, 2, 78, 2, 75, 2, 80, 72, 69, 66, 64, 81, 65}},
+ {.toggles_ = 10,
+ .threw_ = 0,
+ .result_ = {},
+ .next_event_ = 23,
+ .events_ = {67, 68, 73, 1, 74, 1, 75, 1, 73, 2, 79, 77, 2, 78, 2, 75, 2, 80, 72, 69, 66, 64, 65}},
+ {.toggles_ = 11,
+ .threw_ = 1,
+ .result_ = -1,
+ .next_event_ = 24,
+ .events_ = {67, 68, 73, 1, 74, 1, 75, 1, 73, 2, 79, 77, 2, 78, 2, 75, 2, 80, 72, 69, 66, 64, 81, 65}},
+ {.toggles_ = 12,
+ .threw_ = 0,
+ .result_ = {},
+ .next_event_ = 16,
+ .events_ = {67, 68, 73, 1, 74, 1, 76, 1, 75, 1, 80, 72, 69, 66, 64, 65}},
+ {.toggles_ = 13,
+ .threw_ = 1,
+ .result_ = -1,
+ .next_event_ = 17,
+ .events_ = {67, 68, 73, 1, 74, 1, 76, 1, 75, 1, 80, 72, 69, 66, 64, 81, 65}},
+ {.toggles_ = 14,
+ .threw_ = 0,
+ .result_ = {},
+ .next_event_ = 16,
+ .events_ = {67, 68, 73, 1, 74, 1, 76, 1, 75, 1, 80, 72, 69, 66, 64, 65}},
+ {.toggles_ = 15,
+ .threw_ = 1,
+ .result_ = -1,
+ .next_event_ = 17,
+ .events_ = {67, 68, 73, 1, 74, 1, 76, 1, 75, 1, 80, 72, 69, 66, 64, 81, 65}},
+ {.toggles_ = 16,
+ .threw_ = 0,
+ .result_ = {},
+ .next_event_ = 18,
+ .events_ = {67, 68, 73, 1, 74, 1, 75, 1, 73, 2, 79, 77, 2, 75, 2, 66, 64, 65}},
+ {.toggles_ = 17,
+ .threw_ = 1,
+ .result_ = -1,
+ .next_event_ = 19,
+ .events_ = {67, 68, 73, 1, 74, 1, 75, 1, 73, 2, 79, 77, 2, 75, 2, 66, 64, 81, 65}},
+ {.toggles_ = 18,
+ .threw_ = 0,
+ .result_ = {},
+ .next_event_ = 18,
+ .events_ = {67, 68, 73, 1, 74, 1, 75, 1, 73, 2, 79, 77, 2, 75, 2, 66, 64, 65}},
+ {.toggles_ = 19,
+ .threw_ = 1,
+ .result_ = -1,
+ .next_event_ = 19,
+ .events_ = {67, 68, 73, 1, 74, 1, 75, 1, 73, 2, 79, 77, 2, 75, 2, 66, 64, 81, 65}},
+ {.toggles_ = 20,
+ .threw_ = 0,
+ .result_ = {},
+ .next_event_ = 16,
+ .events_ = {67, 68, 73, 1, 74, 1, 76, 1, 75, 1, 80, 72, 69, 66, 64, 65}},
+ {.toggles_ = 21,
+ .threw_ = 1,
+ .result_ = -1,
+ .next_event_ = 17,
+ .events_ = {67, 68, 73, 1, 74, 1, 76, 1, 75, 1, 80, 72, 69, 66, 64, 81, 65}},
+ {.toggles_ = 22,
+ .threw_ = 0,
+ .result_ = {},
+ .next_event_ = 16,
+ .events_ = {67, 68, 73, 1, 74, 1, 76, 1, 75, 1, 80, 72, 69, 66, 64, 65}},
+ {.toggles_ = 23,
+ .threw_ = 1,
+ .result_ = -1,
+ .next_event_ = 17,
+ .events_ = {67, 68, 73, 1, 74, 1, 76, 1, 75, 1, 80, 72, 69, 66, 64, 81, 65}},
+ {.toggles_ = 24,
+ .threw_ = 0,
+ .result_ = {},
+ .next_event_ = 23,
+ .events_ = {67, 68, 73, 1, 74, 1, 75, 1, 73, 2, 79, 77, 2, 78, 2, 75, 2, 80, 72, 69, 66, 64, 65}},
+ {.toggles_ = 25,
+ .threw_ = 1,
+ .result_ = -1,
+ .next_event_ = 24,
+ .events_ = {67, 68, 73, 1, 74, 1, 75, 1, 73, 2, 79, 77, 2, 78, 2, 75, 2, 80, 72, 69, 66, 64, 81, 65}},
+ {.toggles_ = 26,
+ .threw_ = 0,
+ .result_ = {},
+ .next_event_ = 23,
+ .events_ = {67, 68, 73, 1, 74, 1, 75, 1, 73, 2, 79, 77, 2, 78, 2, 75, 2, 80, 72, 69, 66, 64, 65}},
+ {.toggles_ = 27,
+ .threw_ = 1,
+ .result_ = -1,
+ .next_event_ = 24,
+ .events_ = {67, 68, 73, 1, 74, 1, 75, 1, 73, 2, 79, 77, 2, 78, 2, 75, 2, 80, 72, 69, 66, 64, 81, 65}},
+ {.toggles_ = 28,
+ .threw_ = 0,
+ .result_ = {},
+ .next_event_ = 16,
+ .events_ = {67, 68, 73, 1, 74, 1, 76, 1, 75, 1, 80, 72, 69, 66, 64, 65}},
+ {.toggles_ = 29,
+ .threw_ = 1,
+ .result_ = -1,
+ .next_event_ = 17,
+ .events_ = {67, 68, 73, 1, 74, 1, 76, 1, 75, 1, 80, 72, 69, 66, 64, 81, 65}},
+ {.toggles_ = 30,
+ .threw_ = 0,
+ .result_ = {},
+ .next_event_ = 16,
+ .events_ = {67, 68, 73, 1, 74, 1, 76, 1, 75, 1, 80, 72, 69, 66, 64, 65}},
+ {.toggles_ = 31,
+ .threw_ = 1,
+ .result_ = -1,
+ .next_event_ = 17,
+ .events_ = {67, 68, 73, 1, 74, 1, 76, 1, 75, 1, 80, 72, 69, 66, 64, 81, 65}},
+ }) +
+ test_coro_catching_simple_await(std::vector<test_driver>{
+ {.toggles_ = 0,
+ .threw_ = 0,
+ .result_ = 12,
+ .next_event_ = 20,...
[truncated]
``````````
</details>
https://github.com/llvm/llvm-project/pull/152820
More information about the libcxx-commits
mailing list