[libcxx-commits] [PATCH] D93456: [libcxx] Avoid overflows in the windows __libcpp_steady_clock_now()

Adrian McCarthy via Phabricator via libcxx-commits libcxx-commits at lists.llvm.org
Thu Dec 17 09:08:48 PST 2020


amccarth accepted this revision.
amccarth added a comment.

This looks correct and straightforward, so LGTM.

There's probably a "clever" solution involving finding the greatest common divisor (once) of `nano::den` and `freq.QuadPart`.  That would depend on there being a significant common divisor (which I assume is probably true, but not guaranteed).  I think the straightforward solution in this patch is better.



================
Comment at: libcxx/test/std/utilities/time/time.clock/time.clock.steady/now.pass.cpp:28
     assert(t2 >= t1);
+    assert(t2 > std::chrono::time_point<C>());
 
----------------
I don't know what the libcxx style guidelines say, but my inclination would be to add a comment explaining this assertion.  Since the original bug would only occasionally be caught by this assertion, somebody who encounters it might need a hint to look for arithmetic overflows.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D93456



More information about the libcxx-commits mailing list