[libcxx-commits] [libcxx] ab61fe4 - Revert "[libc++] [LWG3321] Mark "year_month_day_last::day() specification does not cover !ok() values" issue as "Nothing to do", but add assertion."

Marek Kurdej via libcxx-commits libcxx-commits at lists.llvm.org
Wed May 13 04:16:58 PDT 2020


Author: Marek Kurdej
Date: 2020-05-13T13:16:43+02:00
New Revision: ab61fe41505c0dab8c05b3b6792454fc097b2999

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

LOG: Revert "[libc++] [LWG3321] Mark "year_month_day_last::day() specification does not cover !ok() values" issue as "Nothing to do", but add assertion."

This reverts commit e25a2601aaa95c861af3228982ecbb2b1c19d27a.
It was failing due to _LIBCPP_ASSERT throwing in a method marked noexcept.

Added: 
    

Modified: 
    libcxx/include/chrono
    libcxx/www/cxx2a_status.html

Removed: 
    


################################################################################
diff  --git a/libcxx/include/chrono b/libcxx/include/chrono
index 9913dc1d06c9..6e5de398b72f 100644
--- a/libcxx/include/chrono
+++ b/libcxx/include/chrono
@@ -824,7 +824,6 @@ constexpr chrono::year                                  operator ""y(unsigned lo
 */
 
 #include <__config>
-#include <__debug>
 #include <ctime>
 #include <type_traits>
 #include <ratio>
@@ -2455,7 +2454,6 @@ chrono::day year_month_day_last::day() const noexcept
         chrono::day(31), chrono::day(31), chrono::day(30),
         chrono::day(31), chrono::day(30), chrono::day(31)
     };
-    _LIBCPP_ASSERT(ok(), "year_month_day_last::day(): year_month_day_last is invalid");
     return month() != February || !__y.is_leap() ?
         __d[static_cast<unsigned>(month()) - 1] : chrono::day{29};
 }

diff  --git a/libcxx/www/cxx2a_status.html b/libcxx/www/cxx2a_status.html
index bee06e652f6a..4b715e7a40f3 100644
--- a/libcxx/www/cxx2a_status.html
+++ b/libcxx/www/cxx2a_status.html
@@ -439,7 +439,7 @@ <h3>Library Working group Issues Status</h3>
 	<tr><td><a href="https://wg21.link/LWG3209">3209</a></td><td>Expression in <tt>year::ok()</tt> returns clause is ill-formed</td><td>Cologne</td><td>Complete</td></tr>
 
 	<tr><td></td><td></td><td></td><td></td></tr>
-	<tr><td><a href="https://wg21.link/LWG3231">3231</a></td><td><tt>year_month_day_last::day</tt> specification does not cover <tt>!ok()</tt> values</td><td>Belfast</td><td><i>Nothing to do</i></td></tr>
+	<tr><td><a href="https://wg21.link/LWG3231">3231</a></td><td><tt>year_month_day_last::day</tt> specification does not cover <tt>!ok()</tt> values</td><td>Belfast</td><td></td></tr>
 	<tr><td><a href="https://wg21.link/LWG3225">3225</a></td><td><tt>zoned_time</tt> converting constructor shall not be <tt>noexcept</tt></td><td>Belfast</td><td></td></tr>
 	<tr><td><a href="https://wg21.link/LWG3190">3190</a></td><td><tt>std::allocator::allocate</tt> sometimes returns too little storage</td><td>Belfast</td><td></td></tr>
 	<tr><td><a href="https://wg21.link/LWG3218">3218</a></td><td>Modifier for <tt>%d</tt> parse flag does not match POSIX and <tt>format</tt> specification</td><td>Belfast</td><td></td></tr>


        


More information about the libcxx-commits mailing list