[libcxx-commits] [libcxx] Use `LIBCPP_STATIC_ASSERT` in chrono test (PR #132566)

via libcxx-commits libcxx-commits at lists.llvm.org
Sun Mar 23 10:01:43 PDT 2025


https://github.com/PaulXiCao updated https://github.com/llvm/llvm-project/pull/132566

>From 4d69301ac77902489dd00adeba6d4dfe3cf75413 Mon Sep 17 00:00:00 2001
From: Paul <paulxicao7 at gmail.com>
Date: Sat, 22 Mar 2025 22:31:21 +0100
Subject: [PATCH 1/2] get rid off temporary  (maybe_unused)

---
 .../time.clock/time.clock.gps/types.compile.pass.cpp  | 11 +++++------
 .../time.clock/time.clock.tai/types.compile.pass.cpp  | 11 +++++------
 .../time.clock/time.clock.utc/types.compile.pass.cpp  | 11 +++++------
 3 files changed, 15 insertions(+), 18 deletions(-)

diff --git a/libcxx/test/std/time/time.clock/time.clock.gps/types.compile.pass.cpp b/libcxx/test/std/time/time.clock/time.clock.gps/types.compile.pass.cpp
index 006ad9a2d243e..81604b6e8be7f 100644
--- a/libcxx/test/std/time/time.clock/time.clock.gps/types.compile.pass.cpp
+++ b/libcxx/test/std/time/time.clock/time.clock.gps/types.compile.pass.cpp
@@ -36,11 +36,10 @@
 #include "test_macros.h"
 
 // class gps_clock
-using rep                                 = std::chrono::gps_clock::rep;
-using period                              = std::chrono::gps_clock::period;
-using duration                            = std::chrono::gps_clock::duration;
-using time_point                          = std::chrono::gps_clock::time_point;
-[[maybe_unused]] constexpr bool is_steady = std::chrono::gps_clock::is_steady;
+using rep        = std::chrono::gps_clock::rep;
+using period     = std::chrono::gps_clock::period;
+using duration   = std::chrono::gps_clock::duration;
+using time_point = std::chrono::gps_clock::time_point;
 
 // Tests the values. part of them are implementation defined.
 LIBCPP_STATIC_ASSERT(std::same_as<rep, std::chrono::utc_clock::rep>);
@@ -52,7 +51,7 @@ static_assert(std::same_as<period, std::ratio<period::num, period::den>>);
 
 static_assert(std::same_as<duration, std::chrono::duration<rep, period>>);
 static_assert(std::same_as<time_point, std::chrono::time_point<std::chrono::gps_clock>>);
-LIBCPP_STATIC_ASSERT(is_steady == false);
+LIBCPP_STATIC_ASSERT(std::chrono::gps_clock::is_steady == false);
 
 // typedefs
 static_assert(std::same_as<std::chrono::gps_time<int>, std::chrono::time_point<std::chrono::gps_clock, int>>);
diff --git a/libcxx/test/std/time/time.clock/time.clock.tai/types.compile.pass.cpp b/libcxx/test/std/time/time.clock/time.clock.tai/types.compile.pass.cpp
index a7123bc3e0b5c..b411b1a13acf6 100644
--- a/libcxx/test/std/time/time.clock/time.clock.tai/types.compile.pass.cpp
+++ b/libcxx/test/std/time/time.clock/time.clock.tai/types.compile.pass.cpp
@@ -36,11 +36,10 @@
 #include "test_macros.h"
 
 // class tai_clock
-using rep                                 = std::chrono::tai_clock::rep;
-using period                              = std::chrono::tai_clock::period;
-using duration                            = std::chrono::tai_clock::duration;
-using time_point                          = std::chrono::tai_clock::time_point;
-[[maybe_unused]] constexpr bool is_steady = std::chrono::tai_clock::is_steady;
+using rep        = std::chrono::tai_clock::rep;
+using period     = std::chrono::tai_clock::period;
+using duration   = std::chrono::tai_clock::duration;
+using time_point = std::chrono::tai_clock::time_point;
 
 // Tests the values. part of them are implementation defined.
 LIBCPP_STATIC_ASSERT(std::same_as<rep, std::chrono::utc_clock::rep>);
@@ -52,7 +51,7 @@ static_assert(std::same_as<period, std::ratio<period::num, period::den>>);
 
 static_assert(std::same_as<duration, std::chrono::duration<rep, period>>);
 static_assert(std::same_as<time_point, std::chrono::time_point<std::chrono::tai_clock>>);
-LIBCPP_STATIC_ASSERT(is_steady == false);
+LIBCPP_STATIC_ASSERT(std::chrono::tai_clock::is_steady == false);
 
 // typedefs
 static_assert(std::same_as<std::chrono::tai_time<int>, std::chrono::time_point<std::chrono::tai_clock, int>>);
diff --git a/libcxx/test/std/time/time.clock/time.clock.utc/types.compile.pass.cpp b/libcxx/test/std/time/time.clock/time.clock.utc/types.compile.pass.cpp
index 8cb3d78d97f52..292e2c47c02b6 100644
--- a/libcxx/test/std/time/time.clock/time.clock.utc/types.compile.pass.cpp
+++ b/libcxx/test/std/time/time.clock/time.clock.utc/types.compile.pass.cpp
@@ -36,11 +36,10 @@
 #include "test_macros.h"
 
 // class utc_clock
-using rep                                 = std::chrono::utc_clock::rep;
-using period                              = std::chrono::utc_clock::period;
-using duration                            = std::chrono::utc_clock::duration;
-using time_point                          = std::chrono::utc_clock::time_point;
-[[maybe_unused]] constexpr bool is_steady = std::chrono::utc_clock::is_steady;
+using rep        = std::chrono::utc_clock::rep;
+using period     = std::chrono::utc_clock::period;
+using duration   = std::chrono::utc_clock::duration;
+using time_point = std::chrono::utc_clock::time_point;
 
 // Tests the values. Some of them are implementation-defined.
 LIBCPP_STATIC_ASSERT(std::same_as<rep, std::chrono::system_clock::rep>);
@@ -52,7 +51,7 @@ static_assert(std::same_as<period, std::ratio<period::num, period::den>>);
 
 static_assert(std::same_as<duration, std::chrono::duration<rep, period>>);
 static_assert(std::same_as<time_point, std::chrono::time_point<std::chrono::utc_clock>>);
-LIBCPP_STATIC_ASSERT(is_steady == false);
+LIBCPP_STATIC_ASSERT(std::chrono::utc_clock::is_steady == false);
 
 // typedefs
 static_assert(std::same_as<std::chrono::utc_time<int>, std::chrono::time_point<std::chrono::utc_clock, int>>);

>From 7fa98a20e864a245c7960e56902294677ee36ee8 Mon Sep 17 00:00:00 2001
From: Paul <paulxicao7 at gmail.com>
Date: Sun, 23 Mar 2025 18:01:21 +0100
Subject: [PATCH 2/2] is_steady: testing type and value

---
 .../std/time/time.clock/time.clock.gps/types.compile.pass.cpp | 4 +++-
 .../std/time/time.clock/time.clock.tai/types.compile.pass.cpp | 4 +++-
 .../std/time/time.clock/time.clock.utc/types.compile.pass.cpp | 4 +++-
 3 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/libcxx/test/std/time/time.clock/time.clock.gps/types.compile.pass.cpp b/libcxx/test/std/time/time.clock/time.clock.gps/types.compile.pass.cpp
index 81604b6e8be7f..7b3b581fbcc77 100644
--- a/libcxx/test/std/time/time.clock/time.clock.gps/types.compile.pass.cpp
+++ b/libcxx/test/std/time/time.clock/time.clock.gps/types.compile.pass.cpp
@@ -41,6 +41,8 @@ using period     = std::chrono::gps_clock::period;
 using duration   = std::chrono::gps_clock::duration;
 using time_point = std::chrono::gps_clock::time_point;
 
+[[maybe_unused]] constexpr std::same_as<const bool> decltype(auto) is_steady = std::chrono::gps_clock::is_steady;
+
 // Tests the values. part of them are implementation defined.
 LIBCPP_STATIC_ASSERT(std::same_as<rep, std::chrono::utc_clock::rep>);
 static_assert(std::is_arithmetic_v<rep>);
@@ -51,7 +53,7 @@ static_assert(std::same_as<period, std::ratio<period::num, period::den>>);
 
 static_assert(std::same_as<duration, std::chrono::duration<rep, period>>);
 static_assert(std::same_as<time_point, std::chrono::time_point<std::chrono::gps_clock>>);
-LIBCPP_STATIC_ASSERT(std::chrono::gps_clock::is_steady == false);
+LIBCPP_STATIC_ASSERT(is_steady == false);
 
 // typedefs
 static_assert(std::same_as<std::chrono::gps_time<int>, std::chrono::time_point<std::chrono::gps_clock, int>>);
diff --git a/libcxx/test/std/time/time.clock/time.clock.tai/types.compile.pass.cpp b/libcxx/test/std/time/time.clock/time.clock.tai/types.compile.pass.cpp
index b411b1a13acf6..e7d2a2e8dc477 100644
--- a/libcxx/test/std/time/time.clock/time.clock.tai/types.compile.pass.cpp
+++ b/libcxx/test/std/time/time.clock/time.clock.tai/types.compile.pass.cpp
@@ -41,6 +41,8 @@ using period     = std::chrono::tai_clock::period;
 using duration   = std::chrono::tai_clock::duration;
 using time_point = std::chrono::tai_clock::time_point;
 
+[[maybe_unused]] constexpr std::same_as<const bool> decltype(auto) is_steady = std::chrono::tai_clock::is_steady;
+
 // Tests the values. part of them are implementation defined.
 LIBCPP_STATIC_ASSERT(std::same_as<rep, std::chrono::utc_clock::rep>);
 static_assert(std::is_arithmetic_v<rep>);
@@ -51,7 +53,7 @@ static_assert(std::same_as<period, std::ratio<period::num, period::den>>);
 
 static_assert(std::same_as<duration, std::chrono::duration<rep, period>>);
 static_assert(std::same_as<time_point, std::chrono::time_point<std::chrono::tai_clock>>);
-LIBCPP_STATIC_ASSERT(std::chrono::tai_clock::is_steady == false);
+LIBCPP_STATIC_ASSERT(is_steady == false);
 
 // typedefs
 static_assert(std::same_as<std::chrono::tai_time<int>, std::chrono::time_point<std::chrono::tai_clock, int>>);
diff --git a/libcxx/test/std/time/time.clock/time.clock.utc/types.compile.pass.cpp b/libcxx/test/std/time/time.clock/time.clock.utc/types.compile.pass.cpp
index 292e2c47c02b6..38d7197ce225e 100644
--- a/libcxx/test/std/time/time.clock/time.clock.utc/types.compile.pass.cpp
+++ b/libcxx/test/std/time/time.clock/time.clock.utc/types.compile.pass.cpp
@@ -41,6 +41,8 @@ using period     = std::chrono::utc_clock::period;
 using duration   = std::chrono::utc_clock::duration;
 using time_point = std::chrono::utc_clock::time_point;
 
+[[maybe_unused]] constexpr std::same_as<const bool> decltype(auto) is_steady = std::chrono::utc_clock::is_steady;
+
 // Tests the values. Some of them are implementation-defined.
 LIBCPP_STATIC_ASSERT(std::same_as<rep, std::chrono::system_clock::rep>);
 static_assert(std::is_arithmetic_v<rep>);
@@ -51,7 +53,7 @@ static_assert(std::same_as<period, std::ratio<period::num, period::den>>);
 
 static_assert(std::same_as<duration, std::chrono::duration<rep, period>>);
 static_assert(std::same_as<time_point, std::chrono::time_point<std::chrono::utc_clock>>);
-LIBCPP_STATIC_ASSERT(std::chrono::utc_clock::is_steady == false);
+LIBCPP_STATIC_ASSERT(is_steady == false);
 
 // typedefs
 static_assert(std::same_as<std::chrono::utc_time<int>, std::chrono::time_point<std::chrono::utc_clock, int>>);



More information about the libcxx-commits mailing list