diff options
Diffstat (limited to 'test/SemaCXX/coroutine-traits-undefined-template.cpp')
-rw-r--r-- | test/SemaCXX/coroutine-traits-undefined-template.cpp | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/test/SemaCXX/coroutine-traits-undefined-template.cpp b/test/SemaCXX/coroutine-traits-undefined-template.cpp new file mode 100644 index 0000000000000..4687ed245ac84 --- /dev/null +++ b/test/SemaCXX/coroutine-traits-undefined-template.cpp @@ -0,0 +1,19 @@ +// This file contains references to sections of the Coroutines TS, which can be +// found at http://wg21.link/coroutines. + +// RUN: %clang_cc1 -std=c++14 -fcoroutines-ts -verify %s -fcxx-exceptions -fexceptions -Wunused-result + +namespace std { +namespace experimental { + +template<typename ...T> +struct coroutine_traits { + struct promise_type {}; +}; + +template<> struct coroutine_traits<void>; // expected-note {{forward declaration of 'std::experimental::coroutine_traits<void>'}} +}} // namespace std::experimental + +void uses_forward_declaration() { + co_return; // expected-error {{this function cannot be a coroutine: missing definition of specialization 'coroutine_traits<void>'}} +} |