EricWF added a comment. I think the medium to long term goal should be to replace the `__ExceptionPtrFoo` functions we use with our own implementation, so we no longer rely on these MSVC implementation details.
However it appears that we don't have access to the internal headers that we might need, such as `ehdata.h` ================ Comment at: test/std/language.support/support.exception/propagation/current_exception.pass.cpp:10-11 -// exception_ptr has not been implemented on Windows +// This test needs to be rewritten for the Windows exception_ptr semantics +// which copy the exception each time the exception_ptr is copied. // XFAIL: LIBCXX-WINDOWS-FIXME ---------------- EricWF wrote: > BillyONeal wrote: > > We don't copy the exception each time the exception_ptr is copied -- > > exception_ptr models shared_ptr. See: "C:\Program Files (x86)\Microsoft > > Visual > > Studio\2017\Enterprise\VC\Tools\MSVC\14.10.25017\crt\src\stl\excptptr.cpp" > > > > We do make a copy when making the initial exception_ptr. > Ah thanks for the clarification. So `std::current_exception()` always returns > a different copy. > exception_ptr models shared_ptr. Oh fudge me, it not only models it but it actually uses MSVC's `shared_ptr` implementation. This seems so much sketchier now. https://reviews.llvm.org/D32927 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits