[libcxx-commits] [libcxx] f3f016d - [libcxx tests] Clang is more strict now about coroutines
David Zarzycki via libcxx-commits
libcxx-commits at lists.llvm.org
Tue Jun 23 03:51:51 PDT 2020
Author: David Zarzycki
Date: 2020-06-23T06:51:35-04:00
New Revision: f3f016dbaa0db9ae0f6706ccc6dee26770ac4d33
URL: https://github.com/llvm/llvm-project/commit/f3f016dbaa0db9ae0f6706ccc6dee26770ac4d33
DIFF: https://github.com/llvm/llvm-project/commit/f3f016dbaa0db9ae0f6706ccc6dee26770ac4d33.diff
LOG: [libcxx tests] Clang is more strict now about coroutines
As of 516803dc8685ebcc5bce38b05391958ffee22643, clang is now more
strictly enforcing the coroutine specification.
See: https://reviews.llvm.org/D82029
Added:
Modified:
libcxx/test/libcxx/experimental/language.support/support.coroutines/dialect_support.pass.cpp
libcxx/test/std/experimental/language.support/support.coroutines/coroutine.handle/coroutine.handle.prom/promise.pass.cpp
libcxx/test/std/experimental/language.support/support.coroutines/end.to.end/await_result.pass.cpp
libcxx/test/std/experimental/language.support/support.coroutines/end.to.end/bool_await_suspend.pass.cpp
libcxx/test/std/experimental/language.support/support.coroutines/end.to.end/expected.pass.cpp
libcxx/test/std/experimental/language.support/support.coroutines/end.to.end/fullexpr-dtor.pass.cpp
libcxx/test/std/experimental/language.support/support.coroutines/end.to.end/generator.pass.cpp
libcxx/test/std/experimental/language.support/support.coroutines/end.to.end/go.pass.cpp
libcxx/test/support/coroutine_types.h
Removed:
################################################################################
diff --git a/libcxx/test/libcxx/experimental/language.support/support.coroutines/dialect_support.pass.cpp b/libcxx/test/libcxx/experimental/language.support/support.coroutines/dialect_support.pass.cpp
index 1699d6714b22..2f2a57868b09 100644
--- a/libcxx/test/libcxx/experimental/language.support/support.coroutines/dialect_support.pass.cpp
+++ b/libcxx/test/libcxx/experimental/language.support/support.coroutines/dialect_support.pass.cpp
@@ -25,7 +25,7 @@ struct MyFuture {
struct promise_type {
typedef coro::coroutine_handle<promise_type> HandleT;
coro::suspend_never initial_suspend() { return sn; }
- coro::suspend_always final_suspend() { return sa; }
+ coro::suspend_always final_suspend() noexcept { return sa; }
coro::suspend_never yield_value(int) { return sn; }
MyFuture get_return_object() {
MyFuture f(HandleT::from_promise(*this));
diff --git a/libcxx/test/std/experimental/language.support/support.coroutines/coroutine.handle/coroutine.handle.prom/promise.pass.cpp b/libcxx/test/std/experimental/language.support/support.coroutines/coroutine.handle/coroutine.handle.prom/promise.pass.cpp
index 200bb96a6b18..b6dc79e28795 100644
--- a/libcxx/test/std/experimental/language.support/support.coroutines/coroutine.handle/coroutine.handle.prom/promise.pass.cpp
+++ b/libcxx/test/std/experimental/language.support/support.coroutines/coroutine.handle/coroutine.handle.prom/promise.pass.cpp
@@ -32,7 +32,7 @@ struct MyCoro {
void unhandled_exception() {}
void return_void() {}
coro::suspend_never initial_suspend() { return {}; }
- coro::suspend_never final_suspend() { return {}; }
+ coro::suspend_never final_suspend() noexcept { return {}; }
MyCoro get_return_object() {
do_runtime_test();
return {};
diff --git a/libcxx/test/std/experimental/language.support/support.coroutines/end.to.end/await_result.pass.cpp b/libcxx/test/std/experimental/language.support/support.coroutines/end.to.end/await_result.pass.cpp
index 86746f556c4d..43c71f34c8e6 100644
--- a/libcxx/test/std/experimental/language.support/support.coroutines/end.to.end/await_result.pass.cpp
+++ b/libcxx/test/std/experimental/language.support/support.coroutines/end.to.end/await_result.pass.cpp
@@ -23,7 +23,7 @@ struct coro_t {
return {};
}
suspend_never initial_suspend() { return {}; }
- suspend_never final_suspend() { return {}; }
+ suspend_never final_suspend() noexcept { return {}; }
void return_void() {}
static void unhandled_exception() {}
};
diff --git a/libcxx/test/std/experimental/language.support/support.coroutines/end.to.end/bool_await_suspend.pass.cpp b/libcxx/test/std/experimental/language.support/support.coroutines/end.to.end/bool_await_suspend.pass.cpp
index 679fccbf17fe..f9f9f7bc808b 100644
--- a/libcxx/test/std/experimental/language.support/support.coroutines/end.to.end/bool_await_suspend.pass.cpp
+++ b/libcxx/test/std/experimental/language.support/support.coroutines/end.to.end/bool_await_suspend.pass.cpp
@@ -25,7 +25,7 @@ struct coro_t {
return coroutine_handle<promise_type>::from_promise(*this);
}
suspend_never initial_suspend() { return {}; }
- suspend_never final_suspend() { return {}; }
+ suspend_never final_suspend() noexcept { return {}; }
void return_void() {}
void unhandled_exception() {}
};
diff --git a/libcxx/test/std/experimental/language.support/support.coroutines/end.to.end/expected.pass.cpp b/libcxx/test/std/experimental/language.support/support.coroutines/end.to.end/expected.pass.cpp
index 3b227cf19e2a..a0c31b6a6eda 100644
--- a/libcxx/test/std/experimental/language.support/support.coroutines/end.to.end/expected.pass.cpp
+++ b/libcxx/test/std/experimental/language.support/support.coroutines/end.to.end/expected.pass.cpp
@@ -40,7 +40,7 @@ struct expected {
Data* data;
DataPtr get_return_object() { data = new Data{}; return {data}; }
suspend_never initial_suspend() { return {}; }
- suspend_never final_suspend() { return {}; }
+ suspend_never final_suspend() noexcept { return {}; }
void return_value(T v) { data->val = std::move(v); data->error = {};}
void unhandled_exception() {}
};
diff --git a/libcxx/test/std/experimental/language.support/support.coroutines/end.to.end/fullexpr-dtor.pass.cpp b/libcxx/test/std/experimental/language.support/support.coroutines/end.to.end/fullexpr-dtor.pass.cpp
index bb6fce517df3..441fec4d2385 100644
--- a/libcxx/test/std/experimental/language.support/support.coroutines/end.to.end/fullexpr-dtor.pass.cpp
+++ b/libcxx/test/std/experimental/language.support/support.coroutines/end.to.end/fullexpr-dtor.pass.cpp
@@ -45,7 +45,7 @@ struct Bug {
struct coro2 {
struct promise_type {
suspend_never initial_suspend() { return{}; }
- suspend_never final_suspend() { return{}; }
+ suspend_never final_suspend() noexcept { return{}; }
coro2 get_return_object() { return{}; }
void return_void() {}
Bug yield_value(int) { return {}; }
diff --git a/libcxx/test/std/experimental/language.support/support.coroutines/end.to.end/generator.pass.cpp b/libcxx/test/std/experimental/language.support/support.coroutines/end.to.end/generator.pass.cpp
index 08685b962b73..2c1e2295b06e 100644
--- a/libcxx/test/std/experimental/language.support/support.coroutines/end.to.end/generator.pass.cpp
+++ b/libcxx/test/std/experimental/language.support/support.coroutines/end.to.end/generator.pass.cpp
@@ -29,7 +29,7 @@ struct minig {
return {};
}
suspend_always initial_suspend() { return {}; }
- suspend_always final_suspend() { return {}; }
+ suspend_always final_suspend() noexcept { return {}; }
minig get_return_object() { return minig{this}; };
void return_void() {}
void unhandled_exception() {}
diff --git a/libcxx/test/std/experimental/language.support/support.coroutines/end.to.end/go.pass.cpp b/libcxx/test/std/experimental/language.support/support.coroutines/end.to.end/go.pass.cpp
index b825fee4bf16..540498fcc865 100644
--- a/libcxx/test/std/experimental/language.support/support.coroutines/end.to.end/go.pass.cpp
+++ b/libcxx/test/std/experimental/language.support/support.coroutines/end.to.end/go.pass.cpp
@@ -46,7 +46,7 @@ struct goroutine
suspend_never initial_suspend() {
return {};
}
- suspend_never final_suspend() {
+ suspend_never final_suspend() noexcept {
return {};
}
void return_void() {}
diff --git a/libcxx/test/support/coroutine_types.h b/libcxx/test/support/coroutine_types.h
index e5d40b1fc530..04b27a161eb3 100644
--- a/libcxx/test/support/coroutine_types.h
+++ b/libcxx/test/support/coroutine_types.h
@@ -20,7 +20,7 @@ template <typename Ty> struct generator {
return {};
}
std::experimental::suspend_always initial_suspend() { return {}; }
- std::experimental::suspend_always final_suspend() { return {}; }
+ std::experimental::suspend_always final_suspend() noexcept { return {}; }
generator get_return_object() { return generator{this}; };
void return_void() {}
void unhandled_exception() {}
More information about the libcxx-commits
mailing list