aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Fiselier <eric@efcs.ca>2017-05-28 20:56:16 +0000
committerEric Fiselier <eric@efcs.ca>2017-05-28 20:56:16 +0000
commit09fcc2ce9b45b5c5437a4b62b9f632939fdfe79e (patch)
tree6e9b48493cc211ffe0a7a3b9376b1b3d94ba60da
parent15ee787ac292e73ce23c92843189d2b675febdf8 (diff)
downloadllvm-09fcc2ce9b45b5c5437a4b62b9f632939fdfe79e.zip
llvm-09fcc2ce9b45b5c5437a4b62b9f632939fdfe79e.tar.gz
llvm-09fcc2ce9b45b5c5437a4b62b9f632939fdfe79e.tar.bz2
Correct XFAIL's in coroutine tests to only list ubsan
llvm-svn: 304106
-rw-r--r--libcxx/test/std/experimental/language.support/support.coroutines/end.to.end/bool_await_suspend.sh.cpp14
-rw-r--r--libcxx/test/std/experimental/language.support/support.coroutines/end.to.end/generator.sh.cpp5
2 files changed, 10 insertions, 9 deletions
diff --git a/libcxx/test/std/experimental/language.support/support.coroutines/end.to.end/bool_await_suspend.sh.cpp b/libcxx/test/std/experimental/language.support/support.coroutines/end.to.end/bool_await_suspend.sh.cpp
index 06ceafa..e51ac67 100644
--- a/libcxx/test/std/experimental/language.support/support.coroutines/end.to.end/bool_await_suspend.sh.cpp
+++ b/libcxx/test/std/experimental/language.support/support.coroutines/end.to.end/bool_await_suspend.sh.cpp
@@ -11,9 +11,8 @@
// UNSUPPORTED: c++98, c++03, c++11
// REQUIRES: fcoroutines-ts
-// These configurations run the tests with '-g', which hits a bug in Clangs
-// coroutine implementation.
-// XFAIL: asan, msan, ubsan, tsan
+// FIXME: When run under UBSAN this test hits an assertion inside Clang
+// XFAIL: ubsan
// RUN: %build -fcoroutines-ts
// RUN: %run
@@ -26,14 +25,15 @@ using namespace std::experimental;
struct coro_t {
struct promise_type {
coro_t get_return_object() {
- coroutine_handle<promise_type>{};
- return {};
+ return coroutine_handle<promise_type>::from_promise(*this);
}
suspend_never initial_suspend() { return {}; }
suspend_never final_suspend() { return {}; }
void return_void(){}
void unhandled_exception() {}
};
+ coro_t(coroutine_handle<promise_type> hh) : h(hh) {}
+ coroutine_handle<promise_type> h;
};
struct NoSuspend {
@@ -64,7 +64,9 @@ coro_t g() {
int main() {
assert(!f_started && !f_resumed && !g_started && !g_resumed);
- f();
+ auto fret = f();
+ assert(f_started && !f_resumed);
+ fret.h.destroy();
assert(f_started && !f_resumed);
g();
assert(g_started && g_resumed);
diff --git a/libcxx/test/std/experimental/language.support/support.coroutines/end.to.end/generator.sh.cpp b/libcxx/test/std/experimental/language.support/support.coroutines/end.to.end/generator.sh.cpp
index f31b68a..4681793 100644
--- a/libcxx/test/std/experimental/language.support/support.coroutines/end.to.end/generator.sh.cpp
+++ b/libcxx/test/std/experimental/language.support/support.coroutines/end.to.end/generator.sh.cpp
@@ -11,9 +11,8 @@
// UNSUPPORTED: c++98, c++03, c++11
// REQUIRES: fcoroutines-ts
-// These configurations run the tests with '-g', which hits a bug in Clangs
-// coroutine implementation.
-// XFAIL: asan, msan, ubsan, tsan
+// FIXME: When run under UBSAN this test hits an assertion inside Clang
+// XFAIL: ubsan
// RUN: %build -fcoroutines-ts
// RUN: %run