mirror of
https://github.com/llvm/llvm-project.git
synced 2025-05-03 03:56:06 +00:00

`__decay_copy` is used by `std::thread`'s constructor to copy its arguments into the new thread. If `__decay_copy` claims to be noexcept, but then copying the argument does actually throw, we'd call std::terminate instead of passing this test. (And I've verified that adding an unconditional `noexcept` to `__decay_copy` does indeed fail this test.) Differential Revision: https://reviews.llvm.org/D100277