| // RUN: %clang_cc1 -std=c++20 -triple=x86_64-- -emit-llvm -fcxx-exceptions \ |
| // RUN: -disable-llvm-passes %s -o - | FileCheck %s |
| |
| #include "Inputs/coroutine.h" |
| |
| struct task { |
| struct promise_type { |
| task get_return_object(); |
| std::suspend_never initial_suspend(); |
| std::suspend_never final_suspend() noexcept; |
| void return_void(); |
| void unhandled_exception() noexcept; |
| }; |
| }; |
| |
| task f() try { |
| co_return; |
| } catch(...) { |
| } |
| |
| // CHECK-LABEL: define{{.*}} void @_Z1fv( |
| // CHECK: call void @llvm.coro.await.suspend.void( |
| // CHECK: call void @_ZN4task12promise_type11return_voidEv( |