[libcxx-commits] [libcxx] c93a531 - [libcxx][test] tests for strengthened `noexcept` are non-portable

Casey Carter via libcxx-commits libcxx-commits at lists.llvm.org
Tue Feb 8 14:54:28 PST 2022


Author: Casey Carter
Date: 2022-02-08T14:54:13-08:00
New Revision: c93a531caeaeda9e2dd782210d63ca9f25d661c5

URL: https://github.com/llvm/llvm-project/commit/c93a531caeaeda9e2dd782210d63ca9f25d661c5
DIFF: https://github.com/llvm/llvm-project/commit/c93a531caeaeda9e2dd782210d63ca9f25d661c5.diff

LOG: [libcxx][test] tests for strengthened `noexcept` are non-portable

Differential Revision: https://reviews.llvm.org/D117966

Added: 
    

Modified: 
    libcxx/test/std/ranges/range.adaptors/range.drop/ctor.default.pass.cpp
    libcxx/test/std/ranges/range.adaptors/range.transform/iterator/deref.pass.cpp
    libcxx/test/std/ranges/range.adaptors/range.transform/iterator/iter_move.pass.cpp
    libcxx/test/std/ranges/range.adaptors/range.transform/iterator/subscript.pass.cpp
    libcxx/test/std/ranges/range.utility/view.interface/view.interface.pass.cpp

Removed: 
    


################################################################################
diff  --git a/libcxx/test/std/ranges/range.adaptors/range.drop/ctor.default.pass.cpp b/libcxx/test/std/ranges/range.adaptors/range.drop/ctor.default.pass.cpp
index 379c38862b7fa..d8f257ffcfc9e 100644
--- a/libcxx/test/std/ranges/range.adaptors/range.drop/ctor.default.pass.cpp
+++ b/libcxx/test/std/ranges/range.adaptors/range.drop/ctor.default.pass.cpp
@@ -24,7 +24,7 @@ constexpr bool test() {
   static_assert( std::is_default_constructible_v<std::ranges::drop_view<ForwardView>>);
   static_assert(!std::is_default_constructible_v<std::ranges::drop_view<NoDefaultCtorForwardView>>);
 
-  static_assert( std::is_nothrow_default_constructible_v<std::ranges::drop_view<ForwardView>>);
+  LIBCPP_STATIC_ASSERT( std::is_nothrow_default_constructible_v<std::ranges::drop_view<ForwardView>>);
   static_assert(!std::is_nothrow_default_constructible_v<ThrowingDefaultCtorForwardView>);
   static_assert(!std::is_nothrow_default_constructible_v<std::ranges::drop_view<ThrowingDefaultCtorForwardView>>);
 

diff  --git a/libcxx/test/std/ranges/range.adaptors/range.transform/iterator/deref.pass.cpp b/libcxx/test/std/ranges/range.adaptors/range.transform/iterator/deref.pass.cpp
index 93b28e9da0873..8f40424d35528 100644
--- a/libcxx/test/std/ranges/range.adaptors/range.transform/iterator/deref.pass.cpp
+++ b/libcxx/test/std/ranges/range.adaptors/range.transform/iterator/deref.pass.cpp
@@ -23,7 +23,7 @@ int main(int, char**) {
     using View = std::ranges::transform_view<MoveOnlyView, PlusOne>;
     View transformView(MoveOnlyView{buff}, PlusOne{});
     assert(*transformView.begin() == 1);
-    static_assert(!noexcept(*std::declval<std::ranges::iterator_t<View>>()));
+    ASSERT_NOT_NOEXCEPT(*std::declval<std::ranges::iterator_t<View>>());
     ASSERT_SAME_TYPE(int, decltype(*std::declval<View>().begin()));
   }
   {
@@ -31,7 +31,7 @@ int main(int, char**) {
     using View = std::ranges::transform_view<MoveOnlyView, PlusOneMutable>;
     View transformView(MoveOnlyView{buff}, PlusOneMutable{});
     assert(*transformView.begin() == 1);
-    static_assert(!noexcept(*std::declval<std::ranges::iterator_t<View>>()));
+    ASSERT_NOT_NOEXCEPT(*std::declval<std::ranges::iterator_t<View>>());
     ASSERT_SAME_TYPE(int, decltype(*std::declval<View>().begin()));
   }
   {
@@ -39,7 +39,7 @@ int main(int, char**) {
     using View = std::ranges::transform_view<MoveOnlyView, PlusOneNoexcept>;
     View transformView(MoveOnlyView{buff}, PlusOneNoexcept{});
     assert(*transformView.begin() == 1);
-    static_assert(noexcept(*std::declval<std::ranges::iterator_t<View>>()));
+    LIBCPP_ASSERT_NOEXCEPT(*std::declval<std::ranges::iterator_t<View>>());
     ASSERT_SAME_TYPE(int, decltype(*std::declval<View>().begin()));
   }
   {
@@ -47,7 +47,7 @@ int main(int, char**) {
     using View = std::ranges::transform_view<MoveOnlyView, Increment>;
     View transformView(MoveOnlyView{buff}, Increment{});
     assert(*transformView.begin() == 1);
-    static_assert(!noexcept(*std::declval<std::ranges::iterator_t<View>>()));
+    ASSERT_NOT_NOEXCEPT(*std::declval<std::ranges::iterator_t<View>>());
     ASSERT_SAME_TYPE(int&, decltype(*std::declval<View>().begin()));
   }
   {
@@ -55,7 +55,7 @@ int main(int, char**) {
     using View = std::ranges::transform_view<MoveOnlyView, IncrementRvalueRef>;
     View transformView(MoveOnlyView{buff}, IncrementRvalueRef{});
     assert(*transformView.begin() == 1);
-    static_assert(!noexcept(*std::declval<std::ranges::iterator_t<View>>()));
+    ASSERT_NOT_NOEXCEPT(*std::declval<std::ranges::iterator_t<View>>());
     ASSERT_SAME_TYPE(int&&, decltype(*std::declval<View>().begin()));
   }
 

diff  --git a/libcxx/test/std/ranges/range.adaptors/range.transform/iterator/iter_move.pass.cpp b/libcxx/test/std/ranges/range.adaptors/range.transform/iterator/iter_move.pass.cpp
index d492df53e80e7..86a620a8d0c48 100644
--- a/libcxx/test/std/ranges/range.adaptors/range.transform/iterator/iter_move.pass.cpp
+++ b/libcxx/test/std/ranges/range.adaptors/range.transform/iterator/iter_move.pass.cpp
@@ -24,7 +24,7 @@ constexpr bool test() {
   {
     std::ranges::transform_view transformView(MoveOnlyView{buff}, PlusOneMutable{});
     auto iter = transformView.begin();
-    static_assert(!noexcept(std::ranges::iter_move(iter)));
+    ASSERT_NOT_NOEXCEPT(std::ranges::iter_move(iter));
 
     assert(std::ranges::iter_move(iter) == 1);
     assert(std::ranges::iter_move(iter + 2) == 3);
@@ -34,10 +34,10 @@ constexpr bool test() {
   }
 
   {
-    static_assert( noexcept(std::ranges::iter_move(
-      std::declval<std::ranges::iterator_t<std::ranges::transform_view<MoveOnlyView, PlusOneNoexcept>>&>())));
-    static_assert(!noexcept(std::ranges::iter_move(
-      std::declval<std::ranges::iterator_t<std::ranges::transform_view<MoveOnlyView, PlusOneMutable>>&>())));
+    LIBCPP_ASSERT_NOEXCEPT(std::ranges::iter_move(
+      std::declval<std::ranges::iterator_t<std::ranges::transform_view<MoveOnlyView, PlusOneNoexcept>>&>()));
+    ASSERT_NOT_NOEXCEPT(std::ranges::iter_move(
+      std::declval<std::ranges::iterator_t<std::ranges::transform_view<MoveOnlyView, PlusOneMutable>>&>()));
   }
 
   return true;

diff  --git a/libcxx/test/std/ranges/range.adaptors/range.transform/iterator/subscript.pass.cpp b/libcxx/test/std/ranges/range.adaptors/range.transform/iterator/subscript.pass.cpp
index 56c223de0caad..337b054a43434 100644
--- a/libcxx/test/std/ranges/range.adaptors/range.transform/iterator/subscript.pass.cpp
+++ b/libcxx/test/std/ranges/range.adaptors/range.transform/iterator/subscript.pass.cpp
@@ -24,10 +24,10 @@ constexpr bool test() {
   assert(iter1[0] == 2);
   assert(iter1[4] == 6);
 
-  static_assert(!noexcept(
-    std::declval<std::ranges::iterator_t<std::ranges::transform_view<MoveOnlyView, PlusOneMutable>>>()[0]));
-  static_assert( noexcept(
-    std::declval<std::ranges::iterator_t<std::ranges::transform_view<MoveOnlyView, PlusOneNoexcept>>>()[0]));
+  ASSERT_NOT_NOEXCEPT(
+    std::declval<std::ranges::iterator_t<std::ranges::transform_view<MoveOnlyView, PlusOneMutable>>>()[0]);
+  LIBCPP_ASSERT_NOEXCEPT(
+    std::declval<std::ranges::iterator_t<std::ranges::transform_view<MoveOnlyView, PlusOneNoexcept>>>()[0]);
 
   ASSERT_SAME_TYPE(
     int,

diff  --git a/libcxx/test/std/ranges/range.utility/view.interface/view.interface.pass.cpp b/libcxx/test/std/ranges/range.utility/view.interface/view.interface.pass.cpp
index b3f9b972a0cb2..2720a75e7b8da 100644
--- a/libcxx/test/std/ranges/range.utility/view.interface/view.interface.pass.cpp
+++ b/libcxx/test/std/ranges/range.utility/view.interface/view.interface.pass.cpp
@@ -191,8 +191,8 @@ constexpr bool testEmpty() {
 
   BoolConvertibleComparison<true> boolConv;
   BoolConvertibleComparison<false> boolConv2;
-  static_assert(noexcept(boolConv.empty()));
-  static_assert(!noexcept(boolConv2.empty()));
+  LIBCPP_ASSERT_NOEXCEPT(boolConv.empty());
+  ASSERT_NOT_NOEXCEPT(boolConv2.empty());
 
   assert(!boolConv.empty());
   assert(!static_cast<BoolConvertibleComparison<true> const&>(boolConv).empty());


        


More information about the libcxx-commits mailing list