[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