diff options
author | Marshall Clow <mclow.lists@gmail.com> | 2018-11-13 17:22:41 +0000 |
---|---|---|
committer | Marshall Clow <mclow.lists@gmail.com> | 2018-11-13 17:22:41 +0000 |
commit | cf355fc37383dd81093cf093c4ab6c879d6bb66d (patch) | |
tree | e47df6bd83f365bcc9735ae7862dba34b7a6f7b8 /libcxx/test/std/utilities/time | |
parent | 7a83c5f623c00e6c1a88f1a90ac8691381375199 (diff) | |
download | bcm5719-llvm-cf355fc37383dd81093cf093c4ab6c879d6bb66d.tar.gz bcm5719-llvm-cf355fc37383dd81093cf093c4ab6c879d6bb66d.zip |
Implement P0972R0: <chrono> zero(), min(), and max() should be noexcept. Reviewed as https://reviews.llvm.org/D53828
llvm-svn: 346766
Diffstat (limited to 'libcxx/test/std/utilities/time')
8 files changed, 57 insertions, 8 deletions
diff --git a/libcxx/test/std/utilities/time/time.duration/time.duration.special/max.pass.cpp b/libcxx/test/std/utilities/time/time.duration/time.duration.special/max.pass.cpp index 48c3e86e810..29b0e04c247 100644 --- a/libcxx/test/std/utilities/time/time.duration/time.duration.special/max.pass.cpp +++ b/libcxx/test/std/utilities/time/time.duration/time.duration.special/max.pass.cpp @@ -11,7 +11,7 @@ // duration -// static constexpr duration max(); +// static constexpr duration max(); // noexcept after C++17 #include <chrono> #include <limits> @@ -23,6 +23,10 @@ template <class D> void test() { + LIBCPP_ASSERT_NOEXCEPT(std::chrono::duration_values<typename D::rep>::max()); +#if TEST_STD_VER > 17 + ASSERT_NOEXCEPT( std::chrono::duration_values<typename D::rep>::max()); +#endif { typedef typename D::rep Rep; Rep max_rep = std::chrono::duration_values<Rep>::max(); diff --git a/libcxx/test/std/utilities/time/time.duration/time.duration.special/min.pass.cpp b/libcxx/test/std/utilities/time/time.duration/time.duration.special/min.pass.cpp index 0d94aaa5869..daf7165cf90 100644 --- a/libcxx/test/std/utilities/time/time.duration/time.duration.special/min.pass.cpp +++ b/libcxx/test/std/utilities/time/time.duration/time.duration.special/min.pass.cpp @@ -11,7 +11,7 @@ // duration -// static constexpr duration min(); +// static constexpr duration min(); // noexcept after C++17 #include <chrono> #include <limits> @@ -23,6 +23,10 @@ template <class D> void test() { + LIBCPP_ASSERT_NOEXCEPT(std::chrono::duration_values<typename D::rep>::min()); +#if TEST_STD_VER > 17 + ASSERT_NOEXCEPT( std::chrono::duration_values<typename D::rep>::min()); +#endif { typedef typename D::rep Rep; Rep min_rep = std::chrono::duration_values<Rep>::min(); diff --git a/libcxx/test/std/utilities/time/time.duration/time.duration.special/zero.pass.cpp b/libcxx/test/std/utilities/time/time.duration/time.duration.special/zero.pass.cpp index 7b312c5acb5..f9a4673db1a 100644 --- a/libcxx/test/std/utilities/time/time.duration/time.duration.special/zero.pass.cpp +++ b/libcxx/test/std/utilities/time/time.duration/time.duration.special/zero.pass.cpp @@ -11,7 +11,7 @@ // duration -// static constexpr duration zero(); +// static constexpr duration zero(); // noexcept after C++17 #include <chrono> #include <cassert> @@ -22,6 +22,10 @@ template <class D> void test() { + LIBCPP_ASSERT_NOEXCEPT(std::chrono::duration_values<typename D::rep>::zero()); +#if TEST_STD_VER > 17 + ASSERT_NOEXCEPT( std::chrono::duration_values<typename D::rep>::zero()); +#endif { typedef typename D::rep Rep; Rep zero_rep = std::chrono::duration_values<Rep>::zero(); diff --git a/libcxx/test/std/utilities/time/time.point/time.point.special/max.pass.cpp b/libcxx/test/std/utilities/time/time.point/time.point.special/max.pass.cpp index 6bba6fc8278..1d8d0796438 100644 --- a/libcxx/test/std/utilities/time/time.point/time.point.special/max.pass.cpp +++ b/libcxx/test/std/utilities/time/time.point/time.point.special/max.pass.cpp @@ -11,15 +11,21 @@ // time_point -// static constexpr time_point max(); +// static constexpr time_point max(); // noexcept after C++17 #include <chrono> #include <cassert> +#include "test_macros.h" + int main() { typedef std::chrono::system_clock Clock; typedef std::chrono::milliseconds Duration; typedef std::chrono::time_point<Clock, Duration> TP; + LIBCPP_ASSERT_NOEXCEPT(TP::max()); +#if TEST_STD_VER > 17 + ASSERT_NOEXCEPT( TP::max()); +#endif assert(TP::max() == TP(Duration::max())); } diff --git a/libcxx/test/std/utilities/time/time.point/time.point.special/min.pass.cpp b/libcxx/test/std/utilities/time/time.point/time.point.special/min.pass.cpp index b1d955c252a..fab5b4aae22 100644 --- a/libcxx/test/std/utilities/time/time.point/time.point.special/min.pass.cpp +++ b/libcxx/test/std/utilities/time/time.point/time.point.special/min.pass.cpp @@ -11,15 +11,21 @@ // time_point -// static constexpr time_point min(); +// static constexpr time_point min(); // noexcept after C++17 #include <chrono> #include <cassert> +#include "test_macros.h" + int main() { typedef std::chrono::system_clock Clock; typedef std::chrono::milliseconds Duration; typedef std::chrono::time_point<Clock, Duration> TP; + LIBCPP_ASSERT_NOEXCEPT(TP::max()); +#if TEST_STD_VER > 17 + ASSERT_NOEXCEPT( TP::max()); +#endif assert(TP::min() == TP(Duration::min())); } diff --git a/libcxx/test/std/utilities/time/time.traits/time.traits.duration_values/max.pass.cpp b/libcxx/test/std/utilities/time/time.traits/time.traits.duration_values/max.pass.cpp index e3754c1f647..bd411543794 100644 --- a/libcxx/test/std/utilities/time/time.traits/time.traits.duration_values/max.pass.cpp +++ b/libcxx/test/std/utilities/time/time.traits/time.traits.duration_values/max.pass.cpp @@ -9,7 +9,7 @@ // <chrono> -// duration_values::max +// duration_values::max // noexcept after C++17 #include <chrono> #include <limits> @@ -34,4 +34,13 @@ int main() static_assert(std::chrono::duration_values<Rep>::max() == std::numeric_limits<Rep>::max(), ""); #endif + + LIBCPP_ASSERT_NOEXCEPT(std::chrono::duration_values<int>::max()); + LIBCPP_ASSERT_NOEXCEPT(std::chrono::duration_values<double>::max()); + LIBCPP_ASSERT_NOEXCEPT(std::chrono::duration_values<Rep>::max()); +#if TEST_STD_VER > 17 + ASSERT_NOEXCEPT(std::chrono::duration_values<int>::max()); + ASSERT_NOEXCEPT(std::chrono::duration_values<double>::max()); + ASSERT_NOEXCEPT(std::chrono::duration_values<Rep>::max()); +#endif } diff --git a/libcxx/test/std/utilities/time/time.traits/time.traits.duration_values/min.pass.cpp b/libcxx/test/std/utilities/time/time.traits/time.traits.duration_values/min.pass.cpp index 508837375b8..207a9ab5aff 100644 --- a/libcxx/test/std/utilities/time/time.traits/time.traits.duration_values/min.pass.cpp +++ b/libcxx/test/std/utilities/time/time.traits/time.traits.duration_values/min.pass.cpp @@ -9,7 +9,7 @@ // <chrono> -// duration_values::min +// duration_values::min // noexcept after C++17 #include <chrono> #include <limits> @@ -34,4 +34,13 @@ int main() static_assert(std::chrono::duration_values<Rep>::min() == std::numeric_limits<Rep>::lowest(), ""); #endif + + LIBCPP_ASSERT_NOEXCEPT(std::chrono::duration_values<int>::min()); + LIBCPP_ASSERT_NOEXCEPT(std::chrono::duration_values<double>::min()); + LIBCPP_ASSERT_NOEXCEPT(std::chrono::duration_values<Rep>::min()); +#if TEST_STD_VER > 17 + ASSERT_NOEXCEPT(std::chrono::duration_values<int>::min()); + ASSERT_NOEXCEPT(std::chrono::duration_values<double>::min()); + ASSERT_NOEXCEPT(std::chrono::duration_values<Rep>::min()); +#endif } diff --git a/libcxx/test/std/utilities/time/time.traits/time.traits.duration_values/zero.pass.cpp b/libcxx/test/std/utilities/time/time.traits/time.traits.duration_values/zero.pass.cpp index b84a676738a..614c69b2e38 100644 --- a/libcxx/test/std/utilities/time/time.traits/time.traits.duration_values/zero.pass.cpp +++ b/libcxx/test/std/utilities/time/time.traits/time.traits.duration_values/zero.pass.cpp @@ -9,7 +9,7 @@ // <chrono> -// duration_values::zero +// duration_values::zero // noexcept after C++17 #include <chrono> #include <cassert> @@ -25,4 +25,11 @@ int main() static_assert(std::chrono::duration_values<int>::zero() == 0, ""); static_assert(std::chrono::duration_values<Rep>::zero() == 0, ""); #endif + + LIBCPP_ASSERT_NOEXCEPT(std::chrono::duration_values<int>::zero()); + LIBCPP_ASSERT_NOEXCEPT(std::chrono::duration_values<Rep>::zero()); +#if TEST_STD_VER > 17 + ASSERT_NOEXCEPT(std::chrono::duration_values<int>::zero()); + ASSERT_NOEXCEPT(std::chrono::duration_values<Rep>::zero()); +#endif } |