1 // RUN: %clang_cc1 -triple x86_64-apple-darwin9 %s -std=c++14 -fcoroutines-ts -fcxx-exceptions -fsyntax-only -Wignored-qualifiers -Wno-error=return-type -verify -fblocks -Wall -Wextra -Wno-error=unreachable-code
2 // expected-no-diagnostics
4 #include "Inputs/std-coroutine.h"
6 using std::experimental::suspend_always;
7 using std::experimental::suspend_never;
11 void await_suspend(std::experimental::coroutine_handle<>); // FIXME: coroutine_handle
15 struct object { ~object() {} };
17 struct promise_void_return_value {
18 void get_return_object();
19 suspend_always initial_suspend();
20 suspend_always final_suspend();
21 void unhandled_exception();
22 void return_value(object);
25 struct VoidTagReturnValue {
27 VoidTagReturnValue get_return_object();
28 suspend_always initial_suspend();
29 suspend_always final_suspend();
30 void unhandled_exception();
31 void return_value(object);
35 template <typename T1>
36 struct std::experimental::coroutine_traits<void, T1> { using promise_type = promise_void_return_value; };
38 VoidTagReturnValue test() {