diff options
Diffstat (limited to 'clang/test/SemaCXX/coroutines.cpp')
-rw-r--r-- | clang/test/SemaCXX/coroutines.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/clang/test/SemaCXX/coroutines.cpp b/clang/test/SemaCXX/coroutines.cpp index a39ad1b4016..4588586d004 100644 --- a/clang/test/SemaCXX/coroutines.cpp +++ b/clang/test/SemaCXX/coroutines.cpp @@ -818,3 +818,14 @@ extern "C" int f(mismatch_gro_type_tag4) { co_return; //expected-note {{function is a coroutine due to use of 'co_return' here}} } +struct bad_promise_no_return_func { + coro<bad_promise_no_return_func> get_return_object(); + suspend_always initial_suspend(); + suspend_always final_suspend(); + void unhandled_exception(); +}; +// FIXME: Make this ill-formed because the promise type declares +// neither return_value(...) or return_void(). +coro<bad_promise_no_return_func> no_return_value_or_return_void() { + co_await a; +} |