From 486754660bb926339aefcf012a3f848592babb8b Mon Sep 17 00:00:00 2001 From: Dimitry Andric Date: Sat, 28 Jul 2018 11:06:01 +0000 Subject: Vendor import of clang trunk r338150: https://llvm.org/svn/llvm-project/cfe/trunk@338150 --- test/SemaCXX/coroutine-traits-undefined-template.cpp | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 test/SemaCXX/coroutine-traits-undefined-template.cpp (limited to 'test/SemaCXX/coroutine-traits-undefined-template.cpp') 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 +struct coroutine_traits { + struct promise_type {}; +}; + +template<> struct coroutine_traits; // expected-note {{forward declaration of 'std::experimental::coroutine_traits'}} +}} // namespace std::experimental + +void uses_forward_declaration() { + co_return; // expected-error {{this function cannot be a coroutine: missing definition of specialization 'coroutine_traits'}} +} -- cgit v1.2.3