// RUN: %clang_cc1 -std=c++20 -verify %s -fcxx-exceptions -fexceptions -triple x86_64-windows-msvc -fms-extensions
namespacestd{template<typename... T>structcoroutine_traits;template<class Promise =void>structcoroutine_handle{coroutine_handle()=default;static coroutine_handle from_address(void*)noexcept;};template<>structcoroutine_handle<void>{static coroutine_handle from_address(void*)noexcept;coroutine_handle()=default;template<class PromiseType>coroutine_handle(coroutine_handle<PromiseType>)noexcept;};}// namespace std
structsuspend_always{boolawait_ready()noexcept;voidawait_suspend(std::coroutine_handle<>)noexcept;voidawait_resume()noexcept;};template<>structstd::coroutine_traits<void>{structpromise_type{voidget_return_object()noexcept;
suspend_always initial_suspend()noexcept;
suspend_always final_suspend()noexcept;voidreturn_void()noexcept;voidunhandled_exception()noexcept;};};voidSEH_used(){
__try {// expected-error {{cannot use SEH '__try' in a coroutine when C++ exceptions are enabled}}
co_return;// expected-note {{function is a coroutine due to use of 'co_return' here}}
}__except(0){}}