diff --git a/libcxx/test/std/time/time.cal/time.cal.ymwd/time.cal.ymwd.members/op.sys_days.pass.cpp b/libcxx/test/std/time/time.cal/time.cal.ymwd/time.cal.ymwd.members/op.sys_days.pass.cpp --- a/libcxx/test/std/time/time.cal/time.cal.ymwd/time.cal.ymwd.members/op.sys_days.pass.cpp +++ b/libcxx/test/std/time/time.cal/time.cal.ymwd/time.cal.ymwd.members/op.sys_days.pass.cpp @@ -70,5 +70,14 @@ assert( year_month_weekday{sd} == ymwd); // and back } + { + // Index 0 returns 7 weekdays before index 1 and can't be round-tripped. + constexpr year_month_weekday ymwd{year{2000}, month{2}, weekday_indexed{std::chrono::Wednesday, 0}}; + constexpr sys_days sd{ymwd}; + + static_assert(sd.time_since_epoch() == days{10957 + 25}); + static_assert(year_month_weekday{sd} != ymwd); // and back fails + } + return 0; }