[libcxx-commits] [PATCH] D154865: [libc++][format] Fixes times before epoch.

Louis Dionne via Phabricator via libcxx-commits libcxx-commits at lists.llvm.org
Tue Jul 18 10:22:44 PDT 2023


ldionne accepted this revision.
ldionne added inline comments.
This revision is now accepted and ready to land.


================
Comment at: libcxx/test/std/time/time.syn/formatter.file_time.pass.cpp:53
+
+  check(SV("1425-08-04 22:06:56"), SV("{}"), file_seconds(-17'179'869'184s)); // 35 bit minimum
+  check(SV("1901-12-13 20:45:52"), SV("{}"), file_seconds(-2'147'483'648s));
----------------
Mordante wrote:
> h-vetinari wrote:
> > Mordante wrote:
> > > @h-vetinari you mean here? This should be 35. I probably should add a link to http://eel.is/c++draft/time.syn.
> > > ```
> > >   // convenience typedefs
> > >   using nanoseconds  = duration<signed integer type of at least 64 bits, nano>;
> > >   using microseconds = duration<signed integer type of at least 55 bits, micro>;
> > >   using milliseconds = duration<signed integer type of at least 45 bits, milli>;
> > >   using seconds      = duration<signed integer type of at least 35 bits>;
> > >   using minutes      = duration<signed integer type of at least 29 bits, ratio<  60>>;
> > >   using hours        = duration<signed integer type of at least 23 bits, ratio<3600>>;
> > > ```
> > My mistake, sorry. I thought 32 vs. 35 might be a numpad-off-by-one-row error. "35 bit minimum" sounded like "smallest/oldest representable", but from the standard you cited it, it's not the minimum as in representable time, but the minimum as in "we need at least 35 bits"...
> > 
> > Sorry for the noise.
> No problem, I appreciate your feedback!
I agree, let's add a link to the wording.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D154865/new/

https://reviews.llvm.org/D154865



More information about the libcxx-commits mailing list