This test fails in C++20 mode because std::is_clock is false for the
test clock, because it doesn't define a duration member.

libstdc++-v3/ChangeLog:

        * testsuite/30_threads/condition_variable/members/68519.cc:
        Define recent_epoch_float_clock::duration to meet the Cpp17Clock
        requirements.

Tested powerpc64le-linux. Committed to trunk.

commit 0a74a0e1a2d4668613bd5913a600ab644402cefd
Author: Jonathan Wakely <jwak...@redhat.com>
Date:   Thu Oct 22 20:28:10 2020

    libstdc++: Fix custom clock in test
    
    This test fails in C++20 mode because std::is_clock is false for the
    test clock, because it doesn't define a duration member.
    
    libstdc++-v3/ChangeLog:
    
            * testsuite/30_threads/condition_variable/members/68519.cc:
            Define recent_epoch_float_clock::duration to meet the Cpp17Clock
            requirements.

diff --git 
a/libstdc++-v3/testsuite/30_threads/condition_variable/members/68519.cc 
b/libstdc++-v3/testsuite/30_threads/condition_variable/members/68519.cc
index c86ca2ccdbf..307dccd7183 100644
--- a/libstdc++-v3/testsuite/30_threads/condition_variable/members/68519.cc
+++ b/libstdc++-v3/testsuite/30_threads/condition_variable/members/68519.cc
@@ -47,10 +47,11 @@ test_wait_for()
 // needs to use a more recent epoch.
 struct recent_epoch_float_clock
 {
-  using rep = std::chrono::duration<float>::rep;
-  using period = std::chrono::duration<float>::period;
-  using time_point = std::chrono::time_point<recent_epoch_float_clock,
-    std::chrono::duration<float>>;
+  using duration = std::chrono::duration<float>;
+  using rep = duration::rep;
+  using period = duration::period;
+  using time_point
+    = std::chrono::time_point<recent_epoch_float_clock, duration>;
   static constexpr bool is_steady = true;
 
   static const std::chrono::steady_clock::time_point epoch;

Reply via email to