[PATCH] D49774: [libc++] Use __int128_t to represent file_time_type.

Eric Fiselier via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Wed Jul 25 13:01:03 PDT 2018


EricWF added a comment.

In https://reviews.llvm.org/D49774#1175679, @BillyONeal wrote:

> In https://reviews.llvm.org/D49774#1175650, @ldionne wrote:
>
> > In https://reviews.llvm.org/D49774#1175543, @BillyONeal wrote:
> >
> > > In https://reviews.llvm.org/D49774#1175131, @mclow.lists wrote:
> > >
> > > > Another problem (that Eric and I discussed last night) is that filesystem is part of C++17, and `file_clock` is C++20. So we need a solution for C++17 as well.
> > >
> > >
> > > It seems like we need to fix C++20 to allow that to be a typedef to a type in std::filesystem or that will be ABI breaking for MSVC++. IMO we should fix the spec to allow that rather than make libc++ jump through insane hoops.
> >
> >
> > We could also just provide `file_clock` "early" in C++17. Strictly speaking that may make our implementation non-conforming, but IDK how big of a deal this would be?
>
>
> Sure, libc++ could do that. But because msvc++ and libstdc++ have already shipped this thing I think the spec will have to change.
>
> No real user cares about the associated namespaces of a clock anyway.


Agreed. I don't think this spec will land as-is.



================
Comment at: test/std/experimental/filesystem/fs.op.funcs/fs.op.last_write_time/last_write_time.pass.cpp:589
+  std::cerr << new_ts.tv_sec << "\n";
+  std::cerr << new_ts.tv_nsec << "\n";
+  TEST_CHECK(ts[1].tv_sec == new_ts.tv_sec);
----------------
TODO: remove this.


Repository:
  rCXX libc++

https://reviews.llvm.org/D49774





More information about the cfe-commits mailing list