diff options
author | Eric Fiselier <eric@efcs.ca> | 2017-05-28 20:56:16 +0000 |
---|---|---|
committer | Eric Fiselier <eric@efcs.ca> | 2017-05-28 20:56:16 +0000 |
commit | 09fcc2ce9b45b5c5437a4b62b9f632939fdfe79e (patch) | |
tree | 6e9b48493cc211ffe0a7a3b9376b1b3d94ba60da | |
parent | 15ee787ac292e73ce23c92843189d2b675febdf8 (diff) | |
download | llvm-09fcc2ce9b45b5c5437a4b62b9f632939fdfe79e.zip llvm-09fcc2ce9b45b5c5437a4b62b9f632939fdfe79e.tar.gz llvm-09fcc2ce9b45b5c5437a4b62b9f632939fdfe79e.tar.bz2 |
Correct XFAIL's in coroutine tests to only list ubsan
llvm-svn: 304106
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 |