23 lines · cpp
1// RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -std=c++20 -disable-llvm-passes -emit-llvm %s -o - | FileCheck %s2#include "Inputs/coroutine.h"3 4using namespace std;5 6struct coro {7 struct promise_type {8 coro get_return_object();9 suspend_never initial_suspend();10 suspend_never final_suspend() noexcept;11 void return_void();12 static void unhandled_exception();13 };14};15 16// CHECK: void @_Z3foov() #[[FOO_ATTR_NUM:[0-9]+]]17// CHECK: declare token @llvm.coro.save(ptr) #[[SAVE_ATTR_NUM:[0-9]+]]18// CHECK: attributes #[[FOO_ATTR_NUM]] = { {{.*}} presplitcoroutine19// CHECK: attributes #[[SAVE_ATTR_NUM]] = { {{.*}}nomerge20coro foo() {21 co_await suspend_always{};22}23